我有一个控制器文件有点重复,有几个动作都做同样的事情,加载然后渲染布局。因为我需要的所有内容都是在自定义布局XML块中定义的,所以我实际上并不需要控制器来执行任何其他操作。我编写它的方式感觉就像是在复制多种方法的代码。我可以调用一种“默认”方法(如defaultAction
)吗?
<?php
class Markie_Module_LiteratureController extends Mage_Core_Controller_Front_Action {
public function catalogsAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function postersAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function helpAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
答案 0 :(得分:0)
感谢@fantasticrice指出这个答案:https://stackoverflow.com/a/22252395/2036972
我已将代码更改为以下内容,并且它的工作非常顺利。很短,没有代码重复。我将在周末开放这个问题,看看是否有人有更好的方法,或者这个答案有问题。
<?php
class Markie_Module_LiteratureController extends Mage_Core_Controller_Front_Action {
public function __call()
{
$this->loadLayout();
$this->renderLayout();
}
}