2012-07-16 59 views
8

當我試圖使用從原則擴展包的Sluggable行爲設置沒有得到,當我使用窗體來創建一個實例,這將導致以下錯誤設置:Symfony的2 Sluggable不使用形式

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'slug' cannot be 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))); 
       } 

      } 
     } 

而在實體類sluggable字段定義:

/** 
    * @Gedmo\Slug(fields={"title"}) 
    * @ORM\Column(length=128, unique=true) 
    */ 
    private $slug; 

如果我蛞蝓字段添加到formbuilder和手動設置的值,它的工作原理確定,但很明顯,我不想搞亂與此相關。

任何人都可以幫忙嗎?

謝謝

+0

你有:使用Gedmo \將\ Annotation映射爲Gedmo;在實體類? – drupality 2012-07-16 18:01:15

+0

是的。該實體也(成功)使用樹擴展。 – Dan 2012-07-16 19:02:40

回答

30

明白了。

我忘了下面的行添加到config.yml文件:

sluggable:真

所以應該讀的東西,如:

stof_doctrine_extensions: 
    default_locale: en 
    translation_fallback: true 
    orm: 
     default: 
      tree: true 
      timestampable: true 
      sluggable: true 
+0

thx,很長一段時間尋找這個答案...在最後一個項目中,我的同事做到了這一點,我無法弄清楚我做錯了什麼... – AlexK 2013-10-23 14:11:18

+2

確保你把它放在「stof_doctrine_extensions」下面「教條」,因爲它花了我一段時間纔看到我的錯誤 – 2014-04-11 12:29:01

+0

我有同樣的問題,我添加這些配置,但我得到這個錯誤: '沒有擴展能夠加載「stof_doctrine_extensions」配置' 。 任何人都可以幫助我嗎? – Laiso 2017-10-16 12:00:04