表单提交时出现Symfony主键错误:完整性约束违规:1062重复条目' 0'

时间:2015-11-15 13:45:17

标签: forms symfony doctrine nullable

控制器中的以下路由与我的Film实体一起用于创建表中的第一个对象 - 但是,如果我尝试创建第二个条目,则主键似乎不会递增:

  

执行“INSERT INTO Films”(film_title,year,set_id,rating)VALUES(?,?,?,?)'用params [" The Matrix",null,null,null]:

     

SQLSTATE [23000]:完整性约束违规:1062重复输入' 0'关键' PRIMARY'

来自我的控制器的路线是:

/**
 * @Route("/newfilm", name="new_film")
 */
public function newFilmAction(Request $request)
{
    $film = new Films();

    $form = $this->CreateFormBuilder($film)
        ->add('film_title','text',array('label'=>'Film Title'))
        ->add('Save','submit',array('label'=>'Add Film'))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($film);
        $em->flush();
        return $this->redirectToRoute('success_filmadded');
    }

    return $this->render('AppBundle:Default:new.film.form.html.twig', array(
        'form' => $form->createView(),
    ));
}

我的电影实体的相关代码是:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Films
 *
 * @ORM\Table(name="Films", indexes={@ORM\Index(name="fk_Films_sets1_idx", columns={"set_id"})})
 * @ORM\Entity
 */
class Films
{

    /**
     * @var integer
     *
     * @ORM\Column(name="filmid", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $filmid;


    /**
     * @var string
     *
     * @ORM\Column(name="film_title", type="text", length=65535, nullable=false)
     */
    private $film_title;

    /**
     * @var string
     *
     * @ORM\Column(name="year", type="integer", nullable=true)
     */
    private $year;


    /**
     * @var \AppBundle\Entity\Sets
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Sets")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="set_id", referencedColumnName="setid")
     * })
     */
    private $set;


    /**
     * @var integer
     *
     * @ORM\Column(name="rating", type="integer", nullable=true)
     */
    private $rating;
}

我希望能够为这些其他参数添加具有NULL的新对象。

0 个答案:

没有答案