Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 3871 Просмотров
*

aldem67

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Доброй ночи. подскажите, как обратиться к методам модели из вида. Почему-то в одном месте работает, а в другом упорно ничего не видит.

вот так работает
Код: php
<?php
defined('_JEXEC') or die('');
jimport('joomla.application.component.view');
class CatxViewJournal extends JView{
function display($tpl=null){
$model=& $this->getModel('Journal');
$rows=&$model->getJournal();
$this->assignRef('rows',$rows);
parent::display($tpl);
}
}
?>


а в виде добавления записи
Код: php
<?php
defined('_JEXEC') or die('');
jimport('joomla.application.component.view');

class CatxViewAddjournal extends JView{
function display($tpl=null){
$model=& $this->getModel('Journal');
$month=&$model->getMonth();
$this->assignRef('month',$month);
parent::display($tpl);
}
}

?>

Упорно не видит методы. да и когда я вывел $model через var_dump во втором случае, он мне вернул NULL   >:(

Что-то важное я упустил, но что не пойму. может какую-то переменную нужно определить для методов ADD, EDIT? чтобы в них можно было вызывать метод
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Обратиться к модели из вида
« Ответ #1 : 16.11.2010, 01:00:26 »
Это потому что список доступных моделей для вью назначает контроллер, а по умолчанию он, гад, назначает только модель с тем же именем, что и вью.
То есть, либо напрямую импортировать файл класса нужной модели, либо переписывать метод display контроллера, чтобы добавить нужную модель.
*

aldem67

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Обратиться к модели из вида
« Ответ #2 : 16.11.2010, 01:04:29 »
Спасибо большое. Пойду пробовать.
*

aldem67

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Обратиться к модели из вида
« Ответ #3 : 16.11.2010, 13:18:35 »
Прошу прощения. Реализовал следующим образом. Переписав именно контроллер.
Код: php
		public function add(){
JRequest::setVar('view','addjournal');

$view = $this->getView('addjournal','html');

$model =& $this->getModel('journal');
$month=$model->getMonth();
$view->assignRef('month',  $month);

parent::display();
}

Хотел бы узнать, это нормальная реализация или "по научному" это нужно было все-таки как-то по другому сделать?
*

shprota

  • Давно я тут
  • 770
  • 53 / 1
  • Тружусь, не покладая рук
Re: Обратиться к модели из вида
« Ответ #4 : 16.11.2010, 13:24:42 »
по-научному можно сделать так:
Код
$model =& $this->getModel('journal');
$view->setModel($model, true);
и уже во view данные из модели тащить
*

aldem67

  • Осваиваюсь на форуме
  • 12
  • 1 / 0
Re: Обратиться к модели из вида
« Ответ #5 : 16.11.2010, 13:41:11 »
Вот спасибо. все получилось!  yes!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Обратиться к модели из вида
« Ответ #6 : 16.11.2010, 15:52:58 »
Это потому что список доступных моделей для вью назначает контроллер, а по умолчанию он, гад, назначает только модель с тем же именем, что и вью.
То есть, либо напрямую импортировать файл класса нужной модели, либо переписывать метод display контроллера, чтобы добавить нужную модель.
И вот это реально парит. Я напрямую модель подключаю используя соответствующий самописный метод.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

использование Quote и getEscaped в модели компонента

Автор Dron79

Ответов: 1
Просмотров: 3215
Последний ответ 12.12.2010, 08:46:35
от Dron79
Как в модели получить объект другой модели?

Автор Виталик

Ответов: 2
Просмотров: 1859
Последний ответ 05.01.2010, 21:31:48
от Виталик
Перемення модели определена в первом методе контролера, не видна во втором.

Автор yAnTar

Ответов: 1
Просмотров: 1342
Последний ответ 08.11.2008, 19:10:02
от Greck