2014-09-01 3 views
0

Я использую следующие библиотеки:Возможно ли сделать поле gedmo-root внешним ключом?

"gedmo/doctrine-extensions": "2.3.*", 
"stof/doctrine-extensions-bundle": "1.1.*" 

Можно ли сделать gedmo корневого поля, чтобы быть внешним ключом, как это:

/** 
* @ORM\ManyToOne(targetEntity="SP\EventBundle\Entity\Event") 
* @ORM\JoinColumn(name="event_id", referencedColumnName="id", nullable=false) 
* @Gedmo\TreeRoot 
*/ 
private $event; 

Нужен ли я еще одно поля для него?

ответ

0

Невозможно это сделать. Вам нужна дополнительная колонка для @Gedmo\TreeRoot.

Для получения более подробной информации смотрите на lib/Gedmo/Tree/Mapping/Driver/Annotation.php:

if ($this->reader->getPropertyAnnotation($property, self::ROOT)) { 
    $field = $property->getName(); 
    if (!$meta->hasField($field)) { 
     throw new InvalidMappingException("Unable to find 'root' - [{$field}] as mapped property in entity - {$meta->name}"); 
    } 

    if (!$validator->isValidFieldForRoot($meta, $field)) { 
     throw new InvalidMappingException("Tree root field - [{$field}] type is not valid and must be any of the 'integer' types or 'string' in class - {$meta->name}"); 
    } 
    $config['root'] = $field; 
} 

$ мета содержит только общее поле объекта, а не FK!

Смежные вопросы