2015-07-09 2 views
0

Предположим, мне нужно установить формулу значения столбца на 1. Так как я могу это сделать до того, как это будет продолжаться. После сохранения я должен получить 1 в базе данных.как установить значение столбца перед сохранением в symfony2?

$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

Я добавил код сущности выше –

+0

См. Это http://stackoverflow.com/a/30373523/4841794 Вам нужно сохранить объект типа '$ formula', а не целое число. –

ответ

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); 
0

Когда вы создаете связь между двумя объектами, вы не можете передать одно значение или переменный, содержащее одно значение.

Предприятие работает над объектами. Поэтому попробуйте передать объект какой-либо сущности или создать объект с некоторым значением, которым он будет работать. Я также сталкиваюсь с той же ошибкой при передаче одного значения. Просто передайте объект аннотации отношения сущности, возьмет столбец соединения другого объекта.