2013-04-04 3 views
0

Как я только что начал с разработки компонентов Joomla, это может показаться глупым или может быть тривиальным.Несколько моделей для просмотра без контроллеров

Я хотел бы знать, может ли его возможность иметь разные модели, прикрепленные к виду, без использования отдельных контроллеров?

Мое намерение - на самом деле использовать ту же модель для разных видов.

Thanx заранее ...

ответ

2

Да, вы можете загрузить любую модель в представлении с

$model = JModel::getInstance('ModelName', 'ComponentNameModel'); 
0

ОК, получил это работает. В основном вам просто нужно проверить переменную «вид» в классе JRequest:

if(JRequest::getVar('view') == 'yourtargetview') { 
     $modelMain = $this->getModel ('yourtargetmodel'); 
     $viewCallback = $this->getView ('yourtargetview', 'html'); 
     $viewCallback->setModel($modelMain, true); // true is for the default model; 
    } 

, а затем в целевой класс представления, ссылки на функции модели следующим образом (обратите внимание на второй параметр, чтобы получить вызов):

$this->targetFieldValue = $this->get('targetMethod', 'targetModel'); 

Надеется, что это помогает ...

+0

'targetField' является метод или свойства имени. и отбросить '&' из '$ viewCallback = & $ this-> getView', он устарел и будет вызывать предупреждение с php 5.3+, объекты в любом случае передаются по ссылке –

+0

Его метод .... и thnx для предложения, Я удалю его :) –

Смежные вопросы