Как получить имя модели в классе таблицы в Symfony 1.4? - PullRequest
0 голосов
/ 21 марта 2012

Я нахожусь внутри ModelTable, и мне нужно имя Model.Например: в случае EventTable мне нужно знать модель, которую он создает - Event.

Внутренне следующая функция уже создает правильный 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();
    }
}

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

1 Ответ

3 голосов
/ 21 марта 2012

Для каждой таблицы доступен массив параметров (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');
...