2012-03-21 76 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

你必须为每个表(教义/ 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');