在我的布局页面中,当我在其他视图中使用Yii::app()->user->isAdmin()
显示正确值但不在布局中工作时,Cmenu可见fn Yii::app()->user->isAdmin()
无法正常工作。
我在protected / views / layouts / main.php中的代码
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index'),/*'visible'=>!Yii::app()->user->isGuest*/),
array('label'=>'Master','url'=>array('/site/master'),'visible'=>Yii::app()->user->isAdmin()),
array('label'=>'Transaction','url'=>array('/site/transaction'),'visible'=>Yii::app()->user->isAdmin()),
array('label'=>' Alotted Task','url'=>array('/site/alottedtask'),'visible'=>!Yii::app()->user->isGuest),
array('label'=>'Completed Task','url'=>array('/site/completedtask'),'visible'=>!Yii::app()->user->isGuest),
array('label'=>'Status Update', 'url'=>array('/site/statusupdate'),'visible'=>Yii::app()->user->isAdmin()),
array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
)); ?>
显示错误,如
尝试获取非对象的属性
更新
我的错误页面http://localhost/tracktest/index.php
答案 0 :(得分:4)
所以这是抛出“非对象”错误的代码:
return intval($user->role) == 1;
这意味着当PHP试图获取role
对象的$user
属性时,$user
实际上不是对象。查看代码,这意味着loadUser()
无法正常运行,或Yii::app()->user->id
未返回用户ID。
为了测试这个,我会将它添加到你的函数中,这样就会打印出一些测试变量:
function isAdmin() { // this should say "public function", btw
$testId = Yii::app()->user->id;
echo $testId;
print_r(User::model()->findByPk($testId));
die();
}
这可以让你看看你是否获得了用户ID,以及用户是否正确加载。
祝你好运!答案 1 :(得分:3)
如果要检查特定用户,请使用Yii::app()->user->getName()=='username'
。
答案 2 :(得分:0)
你可以试试这个:
array('label' => 'Master', 'url' => array('/site/master'), 'visible' => Yii::app()->user->checkAccess(array('admin')),