0

我有一个可以从一个控制器的 3 个动作中的任何一个调用的视图。但是,该视图应该会略有不同,具体取决于导致它的操作(它应该显示 3 个图标或 2 个或一个,具体取决于调用的操作)。我可以在视图中检查导致它的操作,以便我可以使用 if 语句检查是否显示每个图标?

谢谢你。

4

1 回答 1

3

当然,您可以action直接将值传递给视图:

$this->template->action = Request::current()->action();

但是 View 不应该对属性一无所知Request,它是一个控制器逻辑。我建议您从您的操作中传递特殊标志:

public function action_show1()
{
    // show only one icon
    $this->template->icons = array('first');
}

public function action_show2()
{
    // show another two icons
    $this->template->icons = array('second', 'third');
}

public function action_showall()
{
    // show all icons
    $this->template->icons = array('first', 'second', 'third');
}

或者为每个图标设置特殊标志(变量)。

于 2012-06-29T13:38:56.017 回答