我有这个标题,它固定在除徽标之外的所有页面上。徽标的颜色略有不同,与用户所在的页面有关。
我们应该在相应的控制器上设置它并在layout.php页面上调用它吗?
On controller
public $param = 'logoimagename';
On layout
echo $this->param
我听说Yii的设计不赞成这个,有没有更好的方法?
答案 0 :(得分: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, ...);