Yii::app()->user->isAdmin() 在布局页面中无法正常工作 [英] Yii::app()->user->isAdmin() is not working properly in layout page

查看:32
本文介绍了Yii::app()->user->isAdmin() 在布局页面中无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的布局页面 Cmenu 可见 fn Yii::app()->user->isAdmin() 在我使用 Yii::app()- 时无法正常工作>user->isAdmin() 在其他视图中它显示正确的值但在布局中不起作用.我在 protected/views/layouts/main.php 中的代码

in my layout page Cmenu visible fn Yii::app()->user->isAdmin() is not working properly when i use Yii::app()->user->isAdmin() in someother view it showing correct value but not working in layout. my code in 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

推荐答案

所以这是抛出非对象"错误的代码:

So this is the code that is throwing the "non-object" error:

return intval($user->role) == 1;

这意味着当 PHP 试图获取 $user 对象的 role 属性时,$user 实际上并不是一个对象.查看您的代码,这意味着 loadUser() 无法正常工作,或者 Yii::app()->user->id 未返回用户 ID.

This means that when PHP is trying to get the role attribute of the $user object, $user is not actually an object. Looking at your code, this means that either loadUser() is not working correctly, or Yii::app()->user->id is not returning the user ID.

为了测试这一点,我会将其添加到您的函数中,以便打印出一些测试变量:

To test this, I would add this to your function so some test variables will be printed out:

function isAdmin() { // this should say "public function", btw
  $testId = Yii::app()->user->id;
  echo $testId;
  print_r(User::model()->findByPk($testId));
  die();
}

这应该让您查看是否正在获取用户 ID,以及用户是否正确加载.

This should let you see if you are getting the user ID, and if the user if being loaded properly.

祝你好运!

这篇关于Yii::app()->user->isAdmin() 在布局页面中无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆