Php Joomla 3-自定义组件-如何从管理视图访问站点模型?
我使用ComponentCreator为Joomla3生成了一个自定义组件。我在管理员面板中有一个视图,需要前端模型的功能 我已经在谷歌搜索了好几天,试图找到一个合适的答案,这是我最近得到的一个工作响应: 然而,在这个回答中,他似乎使用了另一个站点视图的站点视图模型 下面是关于我的组件结构的一点介绍: 姓名:com_stargazer 管理员视图:电子邮件 index.php?option=com\u stargazer&view=email&layout=test /管理员/components/com_stargazer/views/email/tmpl/test.php 站点视图和模型:returnpage /components/com_stargazer/models/returnpage.php /components/com_stargazer/views/returnpage/tmpl/default.php 我试图通过包含以下路径修改我的管理视图以包含站点模型:Php Joomla 3-自定义组件-如何从管理视图访问站点模型?,php,model-view-controller,joomla,components,Php,Model View Controller,Joomla,Components,我使用ComponentCreator为Joomla3生成了一个自定义组件。我在管理员面板中有一个视图,需要前端模型的功能 我已经在谷歌搜索了好几天,试图找到一个合适的答案,这是我最近得到的一个工作响应: 然而,在这个回答中,他似乎使用了另一个站点视图的站点视图模型 下面是关于我的组件结构的一点介绍: 姓名:com_stargazer 管理员视图:电子邮件 index.php?option=com\u stargazer&view=email&layout=test /管理员/componen
$this->setModel(getModel(JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_stargazer/models', 'returnpageModel')));
$this->setModel(JModelLegacy::getInstance('returnpage', 'stargazerModel'));
// assigns array from the second model to 'ItemsOtherModel.' there is no '$' sign used.
$this->ItemsOtherModel = $this->get('tags','returnpage');
但是,getModel似乎无法从视图中访问。(可能只是控制器?)
其他参考资料表示要修改控制器(在注释中发布的其他参考资料):
在过去的几天里,我尝试了上述代码示例的各种迭代。最终,我对修改哪个控制器感到困惑?我需要修改管理员控制器以使其工作,还是需要修改站点控制器?将该功能添加到管理模型中,并在站点视图中访问它会更容易吗
调试也很困难,因为我不知道哪个模型会抛出错误。到目前为止,我最好的猜测是,我根本没有从管理视图中连接到站点模型。如果您能帮忙解决这个问题,我们将不胜感激
这是我的第一个问题,所以我希望它足够清楚。如果需要,我可以澄清。
提前感谢。要调用前端或后端模型,您可以使用JLoader,甚至需要一次包含模型文件。 使用JLoader,您可以像这样在管理视图中调用模型
JLoader::import('joomla.application.component.model'); //Load the Joomla Application Framework
JLoader::import( 'returnpage', JPATH_SITE . '/components/com_stargazer/models' ); //Call the frontend model directory
$tags_model = JModelLegacy::getInstance( 'returnpage', 'StargazerModel' );//Instantiate the model
$tags = $tags_model->gettags();
您还可以使用require_一次
require_once JPATH_COMPONENT_SITE.'/models/returnpage.php';
$tags_model = JModelLegacy::getInstance( 'returnpage', 'StargazerModel' );//Instantiate the model
$tags = $tags_model->gettags();
其他参考资料:***********非常感谢。你的回答很简单。我尝试了两种方法,它们都同样有效。你知道有没有一种方法比另一种更受欢迎?我感谢你的时间和专业知识。非常欢迎你。第二个需要较少的执行时间,但我更喜欢第一个,因为它遵循JoomlaAPI。