В одном компоненте несколько моделей и видов?

Тема в разделе "Программирование", создана пользователем justquestion, 02.12.2014.

  1. Offline

    justquestion Недавно здесь

    Регистрация:
    17.12.2013
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Объясните как сделать в одном контроллере несколько моделей и видов. Гугление не помогло. 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 находит (выводит текст из шаблона)

    Почему модель не находится из контролера? Как вызывать методы из контролера?
    Знаю, что модель нужно вызывать из класса вида, но в данном случае модель нужно вызвать из контролера.
     
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Сначала почитай http://joomla-support.ru/thread/44859/ и оформи как следует.
     

Поделиться этой страницей

Загрузка...