【发布时间】:2016-09-29 14:50:00
【问题描述】:
我使用组件创建器为 Joomla 3 生成自定义组件。我在管理员面板中有一个视图,需要前端模型中的函数。
我已经在谷歌搜索了好几天,试图找到一个合适的答案,这是我最接近工作响应的:
但是,在该响应中,他似乎正在使用来自另一个站点视图的站点视图模型。
这里是关于我的组件结构的一点点:
名称:com_stargazer
管理员视图:电子邮件
index.php?option=com_stargazer&view=email&layout=test /administrator/components/com_stargazer/views/email/tmpl/test.php
站点视图和模型:返回页面
/components/com_stargazer/models/returnpage.php /components/com_stargazer/views/returnpage/tmpl/default.php
我尝试通过包含路径来修改我的管理视图以包含站点模型:
$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 似乎无法从视图中访问。 (可能只有控制器?)
其他,参考说要修改控制器(在 cmets 中发布的其他参考):
https://docs.joomla.org/Using_multiple_models_in_an_MVC_component
在过去的几天里,我尝试了上述代码示例的各种迭代。 . .最终我对修改哪个控制器感到困惑?我是否需要修改管理控制器才能使其正常工作,还是站点控制器?将功能添加到管理模型并在站点视图中访问它会更容易吗?
调试也很困难,因为我不知道哪个模型引发了错误。到目前为止,我最好的猜测是,我根本没有运气从管理员视图附加到站点模型。如有任何帮助,我们将不胜感激。
这是我的第一个问题,所以我希望它足够清楚。
如果需要,我可以澄清。
提前致谢。
【问题讨论】:
标签: php model-view-controller joomla components