2012-03-21 4 views
0

Я внутри ModelTable, и мне нужно имя Model. Например: в случае EventTable Мне нужно знать модель, которую она создает, - Event.Как получить имя модели в классе таблицы в symfony 1.4?

Внутренне следующая функция уже конкретизирует и нормальное Model:

class EventTable extends Doctrine_Table 
{ 
    public function findBySomething($something) 
    { 
     // Will return a Event 
     return $this->createQuery('s')->fetchOne(); 
    } 
} 

То, что я хотел бы быть в состоянии сделать:

class EventTable extends Doctrine_Table 
{ 
    public function findBySomething($something) 
    { 
     $modelName = $this->getModelName(); 
     echo "I will create a ".$modelName; // Will display Event 
     return $this->createQuery('s')->fetchOne(); 
    } 
} 

Как получить название модели из внутри таблицы?

ответ

3

У вас есть множество вариантов, доступных для каждой таблицы (Doctrine/Table.php):

protected $_options = array(
    'name'   => null, 
    'tableName'  => null, 
    'sequenceName' => null, 
    'inheritanceMap' => array(), 
    'enumMap'  => array(), 
    'type'   => null, 
    'charset'  => null, 
    'collate'  => null, 
    'treeImpl'  => null, 
    'treeOptions' => array(), 
    'indexes'  => array(), 
    'parents'  => array(), 
    'joinedParents' => array(), 
    'queryParts'  => array(), 
    'versioning'  => null, 
    'subclasses'  => array(), 
); 

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

$this->getOption('name'); 
Смежные вопросы