【问题标题】:Change default view of controller using view-list member: How to set view models?使用视图列表成员更改控制器的默认视图:如何设置视图模型?
【发布时间】:2012-10-19 12:35:47
【问题描述】:

我正在构建一个 Joomla 2.5 组件,并且我想更改在“保存”项目操作之后呈现的视图。这很容易(在 JControllerAdmin 扩展类构造函数中)

$this->view_list = "myview"

但是,myview 需要加载几个模型才能工作。在代码的其他地方,这是由控制器完成的,例如 controller.php(组件根目录中的组件主控制器):

$view = &$this->getView('myview', 'html');
$view->setModel($this->getModel('myviewSpecialModel'),false);
$view->display();

我的问题:我不确定JControllerAdmin 中的哪个位置可以放置此代码,以便在显示视图之前加载必要的模型。有什么建议吗?

【问题讨论】:

    标签: php model-view-controller joomla joomla2.5


    【解决方案1】:

    如果我理解你的问题,你有一个扩展 JControllerAdmin 的控制器。

    所以你前面提到的代码应该在控制器类的display()方法中

    这能回答你的问题吗?

    Joomla! 也很有帮助!文档:Using multiple models in an MVC component

    【讨论】:

    • 感谢 Valentin 看一看,但是 JControllerAdmin 不支持显示方式 (docs.joomla.org/JControllerAdmin/1.6)
    • 是的,我的错,JControllerAdmin 没有实现 display() 方法。我不太明白你为什么使用 JControllerAdmin。例如,我会使用 JControllerForm,您可以在其中实现 edit() 方法并将模型放在那里。
    • 因为 JControllerAdmin 具有删除项目的 delete() 方法,无需关联表单。我想做的一半是通过设置 view_list 来实现的。不幸的是,我在此处指定的视图除了加载该视图的“默认”模型之外还需要额外的初始化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多