今天很不幸的要用joomla的多model,而且是在view,其实在controller里面操作model是比较多的,一般view中也只是取数据显示而已,而joomla的view是可以用到同名的model的,但是刚好这个组件的view是比较多的,为之前一个view写的model也适用新写的view。一般的方法是从controller哪里setModel,但是如果路由不经过controller,那就会报错,这些可就让我不爽了,为什么就不给view提供getModel呢。
joined在http://forum.joomla.org/viewtopic.php?f=304&t=316802这个论坛提供他一个写法:
You can add multiple models to a view.
For example you can add multiple models, for example within the controller:
Code:
$model = $this->getModel ( 'person' );
$view = $this->getView ( 'person ' );
$view->setModel( $model, true ); // true is for the default model;
$company = $this->getModel ( 'company'' );
$company->_name = 'model_company';
$view->setModel( $company );
Within the view:
Code:
$person = $this->get('person' );
$company = $this->get('company, 'model_company');
感觉很费事,绕过controller的时候会出错的。所以直接require进来,new了一个直接操作,哪个方法方便就用那个,本人的一贯风格。