cakephp: 自定义布局变量

CakePHP内置了三种布局变量: $title_for_layout, $content_for_layout ,和 $scripts_for_layout(自1.2).
如它们的名字的含义一样,这些变量在布局中用作占位符以填充数据.

使用自定义布局变量最简单的方法是在你的控制器或者视图中调用 $this->()设置一个变量:

$this->set('var_for_layout', 'value');

然后你可以在你的布局中使用该变量: 

f (isset($var_for_layout )) {
     
echo $var_for_layout
;
}

该方案的"问题"是必须用isset检测变量的有效性,当变量并没有设置时避免"undefined variable"错误.
为避免该问题,我编写了一个简单的Helper当变量没有设置时自动赋予一个空字符串.

class DemoHelper extends  AppHelper {
    
var $value = ''
;

    
function
 afterRender() {
        
$view = ClassRegistry::getObject('view'
);
        
$view->set('var_for_layout', $this->
value);
    }

    
function setValue($value
) {
        
$this->value = $value
;
    }
}

 

var $helpers = array('Demo');

然后我能在所有视图中访问该Helper.
给$var_for_layout设置值我使用DemoHelper对象而不再使用 $this->set()

 $demo->setValue('value');

在布局中现在我能输出自定义的布局变量了.

 echo $var_for_layout;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值