2013-08-15 4 views

ответ

1

Я не уверен, правильно ли я понимаю ваш вопрос. Если вам нужно получить имя всех ваших моделей, возможно, ваш подход к проблеме не оптимален? Во всяком случае вот что я бы подойти к решению проблемы:

foreach(glob('./protected/modules/<module-name>/models/*.php') as $filename){ 
    echo str_replace(".php", "", $filename)."<br/>"; 
} 

Это итерация через все файлы в вашей модели поддиректории внутри модуля и отображает их после удаления «.php» части. Если вы хотите получить доступ все модели для всего проекта изменить

glob('./protected/modules/<module-name>/models/*.php') 

к

glob('./protected/models/*.php') 
+0

Спасибо! Это почти то, что мне нужно. Я просто удалю путь к файлу. Я думал, что есть внутренняя функция, чтобы вызвать для извлечения имен моделей. – ltlynx

+0

@ltlynx Поскольку Yii автоматически загружает все модели по мере необходимости, он не поддерживает список всех доступных моделей. Таким образом, я не думаю, что есть внутренняя функция, чтобы вызвать для получения имен моделей ... – fijas

+0

Я думаю, что я только что нашел решение, которое могло бы привести его в список всех моделей на любых модулях. Я просто добавил этот код к нашему генератору gii внутри нашего класса контроллера, если (! Array_key_exists (Yii :: app() -> params ['model_names'])) {Yii :: app() -> params ['model_names'] = массив(); } if (in_array (' modelClass"?>', Yii :: app() -> params ['model_names'])) {Yii :: app() -> params ['model_names '] [] = "' $ this-> modelClass '"; } – ltlynx

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