我在Joomla 2.5
中创建了一个自定义组件。在此组件中,我想获取com_users
中提供的所有用户。为此,我想让您知道,我如何使用com_users
模型类进入我的零件。任何人都有建议如何去做。
答案 0 :(得分:3)
根据您想要使用模型的位置,您可以简单地询问Joomla!为你加载它。
在JController
类或子类中,您可以调用getModel
传递模型名称和组件前缀...
e.g。
JModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models/');
$model = $this->getModel($name = 'User', $prefix = 'UsersModel');
如上所示,可能需要使用JModel::addIncludePath()
添加要加载的外部模型的路径。
或者,如果您确定型号名称和类前缀,则可以使用JModel
的{{1}}来创建所需的模型对象...例如。
getInstance()
或者在视图中你可以:
$model = JModel::getInstance('User', 'UsersModel');
N.B。在第一行中,我们传递了所需的模型名称,通常您在没有任何参数的情况下调用$myModel = $this->getModel('myOtherModel');
$this->setModel($myModel);
来加载组件视图控制器的默认模型。在第二行中,因为我们只是将模型传递给getModel
,所以它不会使它成为视图使用的默认模型。
当我们稍后想要使用我们的模型对象时,我们可以像这样指定我们想要使用的模型:
setModel()
第一行使用视图的默认模型(因为我们在可选参数中指定了一个)。第二行使用$item = $this->get('Item');
$otherItem = $this->get('Item', 'myOtherModel' );
中的getItem()
。
这一切都有效,因为myOtherModel
(在 JView
中)有以下方法:
libraries/joomla/application/view.php
答案 1 :(得分:1)
尝试这样的事情
if(!class_exists('UsersModelUser')) require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_users'.DS.'models'.DS.'user.php');
您可以从管理员端或前端添加模型的正确路径。
VM2.x组件正在使用这种方式。
或者您只需要有关可以使用的用户的一些详细信息。
$user = JFactory::getUser();
希望这可以帮到你..