Forms 表单提交时Symfony主键错误:完整性约束冲突:1062重复条目';0';
控制器中的以下路径与myForms 表单提交时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
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。但这一切都很奇怪。