假设我必须将列值公式设置为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;
答案 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,注释就会获取其他实体的连接列。