Я использую Symfony 3.4.Я хотел бы использовать глобальные переменные, поэтому я использовал сеансы.В контроллере по умолчанию
public function indexAction(SessionInterface $session)
{
//Some code...
$session->set('uoconnecte', $valeur);
//Some code...
}
я установил переменную, а в другом контроллере
public function newAction(Request $request, SessionInterface $session){}
я получил адекватное значение, поскольку die(dump())
значения показывает это.Но когда приходит $em->flush()
, я не знаю, почему он пытается вставить в другую таблицу (TypeUO), которая не упомянута в $em->persist(Place)
, и при этом получается ошибка:
Возникла исключительная ситуация при выполнении 'INSERT INTO type_u_o (codeTypeUO, libTypeUO, niveauTypeUO, typeuoliaison_id) VALUES (?,?,?,?)' С параметрами [null, null, null, null]:
SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец 'codeTypeUO' не может быть нулевым. "
Сущность, которую я пытаюсь сбросить (LieuRangement), связана со второй (UniteOrganisationnelle).
/**
* @ORM\ManyToOne(targetEntity="AdminBundle\Entity\UniteOrganisationnelle", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="uo_id", referencedColumnName="id",nullable=true)
*/
private $uo;
Это часть кода контроллера
$em = $this->getDoctrine()->getManager();
$session = $this->get('session');
$uo1 = $session->get('uoconnecte');
$lieuRangement->setUo($uo1);
$em->persist($lieuRangement);
//die(dump($lieuRangement->getUo()->getNomUO()));
$em->flush();
Но когда я удаляю переменные сеанса, это работает. Как я могу это решить?
Спасибо за вашепомощь