我正在尝试使用 Doctrine Extensions 捆绑包中的 Sluggable 行为:
http://gediminasm.org/article/sluggable-behavior-extension-for-doctrine-2
我已经使用注释在我的实体中设置了一个 sluggable 字段,但是当我使用表单创建实例时没有设置值,这会导致以下错误:
SQLSTATE [23000]:违反完整性约束:1048 列“slug”不能为空
这是我的控制器的代码:
$form = $this->createFormBuilder($section)
->add('title', 'text')
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($section);
$em->flush();
if (empty($id)) {
return $this->redirect($this->generateUrl('ContentBundle_section_new'));
}
else {
return $this->redirect($this->generateUrl('ContentBundle_section_edit', array('id' => $id)));
}
}
}
以及 Entity 类中的 sluggable 字段定义:
/**
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
如果我将 slug 字段添加到 formbuilder 并手动设置一个值,它可以正常工作,但显然我不想搞砸这个。
任何人都可以帮忙吗?
谢谢