setIdRevision () должен быть экземпляром AppBundle \ Entity \ RevisionInfo или иметь нулевое целое число, - PullRequest
0 голосов
/ 26 апреля 2019

У меня возникла проблема, я изучаю Symfony 3.4, и я хочу добавить 3 новых элемента в базу данных с идентификатором Relashionshiped из 1 элемента другой таблицы, но мне нужна помощь, потому что он отображает эту ошибку. setIdRevision () должен быть экземпляром AppBundle \ Entity \ RevisionInfo или иметь значение NULL,

Это мой код

            $chequeo = new RevisionChequeos(); 
            $chequeo->setidRevision($id);
            $chequeo->setOk($ok[$i]);
            $chequeo->setNok($nok[$i]);
            $chequeo->setSosp($sospechoso[$i]);
            $chequeo->setNum($num[$i] );
            $chequeo->setNombreChequeo($nombre1);
            $chequeo->setNa($na[$i]);
            $chequeo->setTexto($texto[$i] );
            $entityManager->persist($chequeo);
            $entityManager->flush();

$ id - это целое число со значением 3.

1 Ответ

0 голосов
/ 26 апреля 2019

Вы должны передать объект методу, а не целое число.

Короткий скретч:

$info = new RevisionInfo();
// .. do something and fill the info

$chequeo = new RevisionChequeos(); 
// pass the whole object, doctrine is handling the saving of the relation by itself
$chequeo->setidRevision($info);
$chequeo->setOk($ok[$i]);
$chequeo->setNok($nok[$i]);
$chequeo->setSosp($sospechoso[$i]);
$chequeo->setNum($num[$i] );
$chequeo->setNombreChequeo($nombre1);
$chequeo->setNa($na[$i]);
$chequeo->setTexto($texto[$i]);

$entityManager->persist($chequeo);
$entityManager->flush();

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

Вы даете доктрине объект, он проверяет отношение и конфигурацию столбца и сохраняет правильные записи (конструкция внешнего ключа в базе данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...