Symfony2 Sluggable не существует или не может быть загружен автоматически - PullRequest
0 голосов
/ 03 ноября 2011

Я пытался заставить существующий проект работать с локальной копией, но сталкивался с множеством проблем с ODM и зависимостями.

Я сталкиваюсь с этой проблемой Sluggable:

[Semantical Error] The annotation "@Gedmo\Mapping\Annotation\Sluggable" in property       
Cereals\ProductBundle\Document\Category\Specialty::$name does not exist, or could not be 
auto-loaded.

А мои злаки ... \ Специальный файл такой:

<?php
namespace Cereals\ProductBundle\Document\Category;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Gedmo\Mapping\Annotation as Gedmo;

/**
* @MongoDB\Document(collection="Specialty",    
repositoryClass="Cereals\ProductBundle\Repository\SpecialtyRepository")
*/
class Specialty
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;

/**
 * @Gedmo\Sluggable
 * @MongoDB\Index(order="asc")
 * @MongoDB\String
 */
protected $name;

/**
 * @MongoDB\String
 * @MongoDB\UniqueIndex
 * @Gedmo\Slug
 */
protected $slug;

/**
 * @MongoDB\String
 */

Я понял из Googling, что есть некоторые синтаксические обновления для doctrine 2.1.x, и я использовал здесь новые аннотации для @Gedmo \ Mapping \ Annotation \ Sluggable.

Тем не менее семантическая ошибка появляется.

Может кто-нибудь указать некоторые направления? Спасибо !

1 Ответ

1 голос
/ 04 ноября 2011

Аннотация @Gedmo\Sluggable не существует. Если вы посмотрите в эту папку , вы увидите, что эта аннотация не реализована.

На самом деле, вы можете определить свой класс следующим образом:

<?php
namespace Cereals\ProductBundle\Document\Category;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Gedmo\Mapping\Annotation as Gedmo;

/**
* @MongoDB\Document(collection="Specialty",    
repositoryClass="Cereals\ProductBundle\Repository\SpecialtyRepository")
*/
class Specialty
{
    /**
    * @MongoDB\Id(strategy="auto")
    */
    protected $id;

    /**
     * @MongoDB\Index(order="asc")
     * @MongoDB\String
     */
    protected $name;

    /**
     * @MongoDB\String
     * @MongoDB\UniqueIndex
     * @Gedmo\Slug(fields={"name"})
     */
    protected $slug;
}

Для аннотации @Gedmo\Slug нужны свойства, которые будут использоваться для генерации пули.

...