Я создаю модуль для нашего веб-приложения. Я использую Yii 1.1.14. Как получить все имена моделей?Получить все имена моделей в Yii
Я пробовал this, но все равно мне не повезло.
Я создаю модуль для нашего веб-приложения. Я использую Yii 1.1.14. Как получить все имена моделей?Получить все имена моделей в Yii
Я пробовал this, но все равно мне не повезло.
Я не уверен, правильно ли я понимаю ваш вопрос. Если вам нужно получить имя всех ваших моделей, возможно, ваш подход к проблеме не оптимален? Во всяком случае вот что я бы подойти к решению проблемы:
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')
Спасибо! Это почти то, что мне нужно. Я просто удалю путь к файлу. Я думал, что есть внутренняя функция, чтобы вызвать для извлечения имен моделей. – ltlynx
@ltlynx Поскольку Yii автоматически загружает все модели по мере необходимости, он не поддерживает список всех доступных моделей. Таким образом, я не думаю, что есть внутренняя функция, чтобы вызвать для получения имен моделей ... – fijas
Я думаю, что я только что нашел решение, которое могло бы привести его в список всех моделей на любых модулях. Я просто добавил этот код к нашему генератору gii внутри нашего класса контроллера, если (! Array_key_exists (Yii :: app() -> params ['model_names'])) {Yii :: app() -> params ['model_names'] = массив(); } if (in_array (' php echo "$ this-> modelClass"?>', Yii :: app() -> params ['model_names'])) {Yii :: app() -> params ['model_names '] [] = "' $ this-> modelClass '"; } – ltlynx