控制器中的以下路由与我的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的新对象。