2011-09-19 3 views
0

J'essaie de rendre un champ d'un objet slugable.doctrine2 slugable et datafixtures

modèle ressemble à:

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 

Les luminaires à tubes:

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); 
     } 
    } 

schéma créé:

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

Creating database schema... 
Database schema created successfully! 

mais quand je suis en train d'ajouter les accessoires:

# 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="…"] 

# 

des idées?

Répondre

1

Le problème n'est pas dans les appareils, mais dans la génération Slug elle-même. Si elle est correctement configurée, vous ne devriez jamais avoir $slug comme null

Etes-vous sûr d'avoir attaché un écouteur Sluggable?

+0

n'avais pas enregistré mon fichier config.yml: / – Flask