Forms 表单提交时Symfony主键错误:完整性约束冲突:1062重复条目';0';

Forms 表单提交时Symfony主键错误:完整性约束冲突:1062重复条目';0';,forms,symfony,doctrine,nullable,Forms,Symfony,Doctrine,Nullable,控制器中的以下路径与myFilm实体一起用于创建表中的第一个对象-但是,如果我尝试创建第二个条目,主键似乎不会递增: 使用参数[“矩阵”,null,null,null]: SQLSTATE[23000]:完整性约束冲突:键“PRIMARY”的1062重复项“0” 来自我的控制器的路由是: /** * @Route("/newfilm", name="new_film") */ public function newFilmAction(Request

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

使用参数[“矩阵”,null,null,null]:

SQLSTATE[23000]:完整性约束冲突:键“PRIMARY”的1062重复项“0”

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

/**
 * @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的新对象。

错误是表明您的id列不是自动递增的(假设您使用的是mysql)。运行“描述电影”进行确认。还可以运行app/console原则:schema:update--dump sql以确认所有内容都是同步的。请尝试运行此命令
php app/console原则:schema:update--force
以确保所有内容都是更新的。我首先运行了
…update--dump sql
命令,该命令运行时没有错误(但不符合问题)。然后,我尝试了
…update--force
命令,但出现了一个错误:
执行'ALTER TABLE Directors CHANGE directorid directorid BIGINT AUTO_INCREMENT NOT NULL'时发生异常:SQLSTATE[HY000]:一般错误:1025将'/filmsdb/#sql-4a4_33重命名为'/filmsdb/Directors(错误号:150)
根据主键@ORM\GeneratedValue(strategy=“AUTO”)添加此注释,然后更新数据库并重试!它应该有用!我想您可以运行条令:database:drop、database:create、schema:create。但这一切都很奇怪,错误是表明您的id列不是自动递增的(假设您使用的是mysql)。运行“描述电影”进行确认。还可以运行app/console原则:schema:update--dump sql以确认所有内容都是同步的。请尝试运行此命令
php app/console原则:schema:update--force
以确保所有内容都是更新的。我首先运行了
…update--dump sql
命令,该命令运行时没有错误(但不符合问题)。然后,我尝试了
…update--force
命令,但出现了一个错误:
执行'ALTER TABLE Directors CHANGE directorid directorid BIGINT AUTO_INCREMENT NOT NULL'时发生异常:SQLSTATE[HY000]:一般错误:1025将'/filmsdb/#sql-4a4_33重命名为'/filmsdb/Directors(错误号:150)
根据主键@ORM\GeneratedValue(strategy=“AUTO”)添加此注释,然后更新数据库并重试!它应该有用!我想您可以运行条令:database:drop、database:create、schema:create。但这一切都很奇怪。