如何在symfony2中保留之前设置列值?

时间:2015-07-09 17:16:21

标签: php symfony symfony-2.6

假设我必须将列值公式设置为1.那么如何在保持之前执行此操作。坚持不懈后,我应该在数据库中获得1。

 $f=1;
 $product->setFormula($f);
 $em->persist($product); 

如果我使用上面的行,则会出错

  

“Nimo \ MrmdBundle \ Entity \ Product”类型的预期值   协会领域“Nimo \ MrmdBundle \ Entity \ Product#$ basedOn”,得到了   “整数”而不是

这是实体代码

/**
 * @ORM\ManyToOne(targetEntity="Product")
 * @ORM\JoinColumn(name="formula", referencedColumnName="someothercolumn",nullable=true)
 **/
private $formula = null;

2 个答案:

答案 0 :(得分:0)

您必须首先更正实体定义,但这是您需要在控制器中执行的操作。在您确保正确定义实体之前,这将。 (我不能,因为我不知道你的实体定义)

$f=1;
$em = $this->container->get('doctrine.orm.entity_manager');
$repo = $em->getRepository('AppBundle:Formula'); //This should be your referred entity
//You can also do findOneByName below
$formula= $repo->findOneById($id); //This should be the primary key of the referred entity NOT 1
$formula->setFormula($f);
$em->persist($formula);

答案 1 :(得分:0)

当您在两个实体之间创建关系时,您无法传递包含单个值的单个值或变量。

实体适用于对象。因此,尝试传递某个实体的对象或创建一个具有某些值的对象,它将起作用。传递单个值时,我也面临同样的错误。只需传递实体关系的Object,注释就会获取其他实体的连接列。