symfony persist不保存所有属性

时间:2016-08-10 09:44:07

标签: serialization symfony persist

在我的symfony 3项目中,我有一个实体来记录更改。 为了保存更改,我使用了两个带有旧对象和新对象的序列化数组。

日志级:

/*
 * @ORM\Column(name="oldData", type="blob", nullable=false)
 * 
 * @Serializer\Expose 
 */
private $oldData;

/**
 * Set oldData
 * 
 * @param $Data
 */
public function setOldData( $data )
{
    $this->oldData = serialize( $data );

    return $this;
}

我在另一个控制器中使用此类:

$log = new ChangeLog();
$log->setUser( $this->getUser() );
$log->setOfferBase( $ConditionSet->getOfferbaseId() );
$log->setOldData( $ConditionSet );

使用以下代码保存新对象后,在日志中保存新更改:

$log->setNewData( $ConditionSet );

$em->persist( $log );
$em->flush();

问题是数据没有保存在数据库中,我得到一个0字节的blob。我没有收到任何错误,但在我的日志中,我看到symfony没有尝试保存数据:

doctrine.DEBUG: INSERT INTO changeLog (changeDate, offerBase, user) VALUES (?, ?, ?) {"1":"2016-08-09 17:28:39","2":45,"3":1} []

我尝试了以下方法来捕获异常。但输出是#34;没有例外"。

try { 
    $em->persist( $log );
    $em->flush();
    $message = "No exception";
} catch (DBALException $e) {
    $message = sprintf('DBALException [%i]: %s', $e->getCode(), $e->getMessage());
} catch (PDOException $e) {
    $message = sprintf('PDOException [%i]: %s', $e->getCode(), $e->getMessage());
} catch (ORMException $e) {
    $message = sprintf('ORMException [%i]: %s', $e->getCode(), $e->getMessage());
} catch (Exception $e) {
    $message = sprintf('Exception [%i]: %s', $e->getCode(), $e->getMessage());
}
return new Response($message);

0 个答案:

没有答案