2011-09-19 62 views
0

我試圖使一個對象的字段slugable。doctrine2 slugable和datafixtures

型號的樣子:

namespace myBundle\Bundles\BlogBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Doctrine\Common\Collections\ArrayCollection; 
use Gedmo\Mapping\Annotation as Gedmo; 

/** 
* myBundle\Bundles\BlogBundle\Entity\Category 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class Category 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string $title 
    * 
    * @Gedmo\Sluggable 
    * @ORM\Column(name="title", type="string", length=255) 
    */ 
    private $title; 

    /** 
    * @Gedmo\Slug(separator="-", updatable=false, unique=true) 
    * @ORM\Column(name="slug", type="string", length=255, unique=true) 
    */ 
    private $slug; 

    // other properties and methods 

燈具:

namespace myBundle\Bundles\BlogBundle\DataFixtures\ORM; 

use Doctrine\Common\DataFixtures\AbstractFixture; 
use Doctrine\Common\DataFixtures\OrderedFixtureInterface; 
use tooMuch\Bundles\BlogBundle\Entity\Category; 

class LoadCategoryData extends AbstractFixture implements OrderedFixtureInterface 
{ 
    public function load($manager) 
    { 
     $this->generateCategory($manager); 
    } 

    public function generateCategory($manager) 
    { 
     for ($i=0; $i < 10; $i++) { 
      $category = new Category(); 
      $category->setTitle('Category '.$i); 
      $manager->persist($category); 
      $manager->flush(); 

      $this->addReference('category'.$i, $category); 
      unset($category); 
     } 
    } 

模式創建:

# sf doctrine:schema:create 
ATTENTION: This operation should not be executed in a production environment. 

Creating database schema... 
Database schema created successfully! 

但後來當我試圖添加夾具:

# sf doctrine:fixtures:load 
    > purging database 
    > loading myBundle\Bundles\BlogBundle\DataFixtures\ORM\LoadCategoryData 



    [PDOException]                  
    SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'slug' cannot be null 



doctrine:fixtures:load [--fixtures[="..."]] [--append] [--em="…"] 

# 

有什麼想法?

回答

1

問題不在於燈具,它在Slug世代本身。如果設置正確,您應該永遠不會有$slug作爲null

您確定連接了可澀的偵聽器嗎?

+0

還沒有保存我的config.yml:/ – Flask