我在Joomla 2.5
中创建了一个自定义组件。在这个组件中,我想获取所有用户的com_users
。为此,我希望你知道,我如何使用com_users
模型类进入我的组件。任何人都有建议如何去做。如何在joomla的我的自定义组件中使用com_users模型类
回答
根据您要使用的模型,你可以简单地问的Joomla!为你加载它。
在JController
类或子类,你可以调用getModel
通过在型号名称和成分前缀......
例如
JModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models/');
$model = $this->getModel($name = 'User', $prefix = 'UsersModel');
可能需要添加要使用以上作为JModel::addIncludePath()
显示加载外部模型的路径。
或者,如果你确定型号名称和类的前缀,你可以使用JModel
的getInstance()
以创建所需的模型对象...例如
$myModel = $this->getModel('myOtherModel');
$this->setModel($myModel);
注::
$model = JModel::getInstance('User', 'UsersModel');
在视图中你可以
或者在第一行中,我们传递了我们想要的模型名称,通常您不需要任何参数即可调用getModel
来加载组件视图控制器的默认模型。在第二行中,因为我们只将模型传递给setModel()
,它不会使其成为视图使用的默认模型。
当我们想用我们的模型对象,稍后我们可以指定我们要使用这样的:
$item = $this->get('Item');
$otherItem = $this->get('Item', 'myOtherModel');
第一行使用视图的默认模式(因为我们已经指定了一个在选购参数)。第二行使用myOtherModel
的getItem()
。
这是所有的作品,因为JView
(在libraries/joomla/application/view.php
)有以下方法:
/**
* Method to get the model object
*
* @param string $name The name of the model (optional)
*
* @return mixed JModel object
*
* @since 11.1
*/
public function getModel($name = null)
{
if ($name === null)
{
$name = $this->_defaultModel;
}
return $this->_models[strtolower($name)];
}
/**
* Method to add a model to the view. We support a multiple model single
* view system by which models are referenced by classname. A caveat to the
* classname referencing is that any classname prepended by JModel will be
* referenced by the name without JModel, eg. JModelCategory is just
* Category.
*
* @param JModel &$model The model to add to the view.
* @param boolean $default Is this the default model?
*
* @return object The added model.
*
* @since 11.1
*/
public function setModel(&$model, $default = false)
{
$name = strtolower($model->getName());
$this->_models[$name] = &$model;
if ($default)
{
$this->_defaultModel = $name;
}
return $model;
}
尝试这样的事情
if(!class_exists('UsersModelUser')) require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_users'.DS.'models'.DS.'user.php');
您可以从管理方或前端添加正确的路径模型。
VM2.x组件正在以这种方式使用。
或者您只需要一些关于您可以使用的用户的详细信息。
$user = JFactory::getUser();
希望这可以帮助你..
我知道,由包含这个文件,我可以使用它的所有功能,但是我不想用'要求'。是否有任何Joomla方法或插件,这将有所帮助。 – Toretto
只有需要或包含核心文件的功能,如果你想包含库,那么你可以使用jimport() –
- 1. 覆盖组件/ com_users /模型/表格/ login.xml添加类 - 的Joomla 3
- 2. 如何在joomla组件中渲染自定义Html模块
- 3. 自定义类中的Joomla模块FIELDSET
- 4. 如何将joomla recaptcha插件用于我的自定义模块
- 5. 如何将joomla recaptcha插件用于我的自定义模块?
- 6. 如何初始化我的自定义joomla 2.5模型?
- 7. 如何使用npm模块的自定义类型定义?
- 8. 如何在joomla组件视图模板中使用自定义字段
- 9. 覆盖组件/ com_users/models/forms/login.xml - Joomla 2.5?
- 10. 在K2组件上添加自定义字段类型joomla 2.5
- 11. 如何使用自定义模块(Joomla 1.7)中的自定义组件的功能?
- 12. 如何更新Joomla自定义组件?
- 13. 如何在WSDL中定义自定义类型的数组?
- 14. Joomla:自定义组件中的链接
- 15. 自定义Joomla组件中的表单
- 16. 如何在模板类定义中构造自定义类型
- 17. 添加模式窗体我自定义的Joomla 3组件
- 18. 为Joomla自定义组件
- 19. Joomla自定义组件
- 20. 如何在Joomla中的自定义组件中使用面包屑?
- 21. 如何在我的自定义组件中使用IncludeHandler?
- 22. Joomla自定义Joomla组件集成com_user
- 23. 如何的Joomla MVC组件中使用多种模型
- 24. Joomla的自定义模块
- 25. Joomla自定义用户组
- 26. 在Joomla中使用预定义字段创建自定义文章类型
- 27. 如何在我的自定义组件中的joomla 2.5中调用核心内容组件?
- 28. 如何使我的自定义文件类型可升级?
- 29. 的Joomla - 自定义组件URL重写
- 30. Joomla 1.7 - 自定义组件的路由
所以它也适用于使用其他组件的模型类? – Toretto
查看我更新的答案,了解加载特定模型的几种替代方法。 – Craig
对不起,但它根本不工作。 – Toretto