DoctrineExtensionsバンドルのSluggable動作を使用しようとしています。
http://gediminasm.org/article/sluggable-behavior-extension-for-doctrine-2
アノテーションを使用してエンティティにスラッガブルフィールドを設定しましたが、フォームを使用してインスタンスを作成すると値が設定されないため、次のエラーが発生します。
SQLSTATE [23000]:整合性制約違反:1048列'slug'をnullにすることはできません
これが私のコントローラーからのコードです:
$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クラスのslugableフィールド定義は次のとおりです。
/**
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
スラッグフィールドをフォームビルダーに追加して手動で値を設定すると、問題なく機能しますが、明らかにこれをいじりたくありません。
誰か助けてもらえますか?
ありがとう