0

我有这个标题,它在除徽标之外的所有页面上都是固定的。关于用户所在的页面,徽标的颜色略有不同。

我们应该在对应的控制器上设置它并在 layout.php 页面上调用它吗?

On controller
public $param = 'logoimagename';

On layout
echo $this->param 

我听说 Yii 在设计上不喜欢这个,有没有更好的方法?

4

1 回答 1

1

我将使用具有如下签名的辅助函数来实现它:

function getLogoName($controller, $action, ...){

   $logo = Yii::app()->params['default_logo'];
   $logo_rules = Yii::app()->params['logo_rules'];

   // check if controller and action match any of the logo rules and get the logo name if found; use the default one otherwise

   return $logo;
}

default_logo 和 logo_rules 是您必须在配置文件中设置的参数。

在视图文件中,您可以简单地编写:

echo .... getLogoName($this->id, $this->action->id, ...);
于 2012-09-21T10:46:03.077 回答