Иногда в контроллере мы получаем имя модели в виде строки, например ‘Items’. А нам надо получить объект – модель Items, что бы потом, к примеру выполнить запрос: Я использую для этого вот такую простую функцию в контроллере, наверное ее можно вынести в helper. Если имя не передано, то получаем модель этого контроллера, т.е. в ItemsController это будет Items Выполнить вышеприведенный запрос можно так: Понятно, что если нам заранее известно имя модели, то это совсем не нужно. Этот код может пригодится для придания коду универсальности. Я написал все функции сохранения и обновления для всех контроллеров одинаковые и вынес их в родительский контроллер, после этого в данном конкретном проекте, мне достаточно было создать контроллер с нужным именем и все. Применений можно найти много – суть: получение модели из строки с ее именем   UPD: Как правильно заметил в комментариях Илья, гораздо более правильный и простой, на самом деле, способ получения модели по имени в Yii – это использовать предусмотренный в методе model() передачу имени класса. А именно: В описании метода model() класса CactiveRecord об этом прямо так и сказано. По умолчанию в метод передается “волшебная” константа (Magic constants)  __CLASS__ (именно так с двумя подчеркивания спереди и сзади), которая в классе возвращает имя класса, именно так как оно задано, с учетом регистра. Т.е. проще говоря все наши мучения сводятся к одной строке:  
Yii – получение модели по имени
Метки: