Объясните как сделать в одном контроллере несколько моделей и видов. Гугление не помогло.
Joomla 3.3
Есть
компонент с именем Loads. У него по умолчанию контроллер:
class LoadsController extends JControllerLegacy
{
}
Модель:
class LoadsModelLoads extends JModelList
{
}
Вид:
class LoadsViewLoads extends JViewLegacy
{
}
Необходимо добавить еще 1 модель и 1 вид с именем Load (в единственном числе).
Создал 2 файла:
Модель:
/components/com_loads/models/load.php:
class LoadsModelLoad extends JModelItem
{
}
Вид (с повторением всей структуры файлов класса вида):
/components/com_loads/views/load/view.html.php:
class LoadsViewLoad extends JViewLegacy
{
}
Вопросы:
Как из основного контроллера вызвать метод из созданного класса модели LoadsModelLoad?
Делаю так:
При обращении к компоненте в урле передаю название task:
/index.php?option=com_loads&task=edit
В основном контроллере:
class LoadsController extends JControllerLegacy
{
public function display($cachable = false, $urlparams = array()) {
parent::display();
}
public function edit() {
$model = $this->getModel('load');
var_dump($model);
die();
}
Пишет:
"Fatal error: Call to a member function set() on a non-object in Z:\home\website.ru.local\www\libraries\legacy\model\legacy.php on line 544"
Почему не находит модель? Необходимо вызывать методы модели из контроллера.
Пробую так:
public function edit() {
$view = $this->getView('load', 'html');
$view->display();
}
Так все работает - вид Load находит (выводит текст из шаблона)
Почему модель не находится из контролера? Как вызывать методы из контролера?
Знаю, что модель нужно вызывать из класса вида, но в данном случае модель нужно вызвать из контролера.