получить ошибку при создании действия на Symfony - PullRequest
0 голосов
/ 27 апреля 2018

Хорошо, я работаю над приложением, использующим Symfony 2, когда я вставляю поля в объект Moteur, я получаю эту ошибку:

Исключительная ситуация при выполнении INSERT INTO Moteur (lib_moteur, Taille, Puiss_max, Type_carburant, Puiss_admin_nat, Puiss_din, Couple_moteur, Puiss_fiscale, Pos_moteur, Alimentation, suralimentation, voiture_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) с параметрами ["ddddddd", 25, 65, "gazoil", 84, 75, "qqqq", 15, "mmmm", 14, 23, null]:

SQLSTATE [23000]: нарушение ограничения целостности: 1048 Le champ 'voiture_id' ne peut être vide (null)

вот контролер сущности Moteur

/**
 * Creates a new Moteur entity.
 *
 */
public function createAction(Request $request)
{
    $entity = new Moteur();
    $form = $this->createCreateForm($entity);
    $form->handleRequest($request);

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();

        return $this->redirect($this->generateUrl('moteur_show', array('id' => $entity->getId())));
    }

    return $this->render('GVGestionVoitBundle:Moteur:new.html.twig', array(
        'entity' => $entity,
        'form'   => $form->createView(),
    ));
}

routing.yml

gv_gestion_voit:
resource: "@GVGestionVoitBundle/Resources/config/routing.yml"
prefix:   /

moteur.yml:

moteur:
path:     /
defaults: { _controller: "GVGestionVoitBundle:Moteur:index" }

moteur_show:
path:     /{id}/show
defaults: { _controller: "GVGestionVoitBundle:Moteur:show" }

moteur_new:
path:     /new
defaults: { _controller: "GVGestionVoitBundle:Moteur:new" }

moteur_create:
path:     /create
defaults: { _controller: "GVGestionVoitBundle:Moteur:create" }
requirements: { _method: post }

moteur_edit:
path:     /{id}/edit
defaults: { _controller: "GVGestionVoitBundle:Moteur:edit" }

moteur_update:
path:     /{id}/update
defaults: { _controller: "GVGestionVoitBundle:Moteur:update" }
requirements: { _method: post|put }


moteur_delete:
path:     /{id}/delete
defaults: { _controller: "GVGestionVoitBundle:Moteur:delete" }
requirements: { _method: post|delete }

1 Ответ

0 голосов
/ 27 апреля 2018

В вашей сущности Moteur вы определяете

/**
* @ORM\OneToOne(targetEntity="GV\GestionVoitBundle\Entity\Voiture", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $voiture;

как nullable и ошибка говорит о том, что поле пустое. Либо вам необходимо предоставить объект Voiture для формы (или для действия), либо изменить поле, чтобы оно могло быть обнуляемым.

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