首页 文章

使用Yii :: app() - > user-> isGuest时出错

提问于
浏览
5

我想知道用户是否是使用Yii :: app() - > user-> isGuest的访客,但我收到以下通知:

Undefined property: CWebApplication::$user

显然组件用户尚未在应用程序中定义,我想知道原因 .

我试图通过检查组件是否可用

if(isset(Yii::app()->user))

然而它失败了¿即使没有定义Yii :: app() - > user,我如何检查用户是否是访客?¿使用isGuest时我是否应该注意到这一点?

EDIT :我将error_reporting指令更改为"E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT"我需要继续前进 . 现在我得到了这个致命的错误:

Fatal error: Call to a member function getId() on a non-object in home/mario/projects/ciudad_wiki/yii/framework/web/auth/CWebUser.php on line 530

无时间记忆功能位置

  • 0.0005 235120 ()../ index.php:0

  • 0.0207 1548168 CApplication-> run()../ index.php:13

  • 0.0207 1548352 CWebApplication-> processRequest()../ CApplication.php:162

  • 0.0235 1725768 CWebApplication-> runController()../CWebApplication.php:135

  • 0.0272 2103464 CController-> run()../CWebApplication.php:276

  • 0.0279 2145872 CController-> runActionWithFilters()../ CController.php:266

  • 0.0279 2145984 CController-> runAction()../ CController.php:287

  • 0.0279 2146128 CInlineAction-> runWithParams()../ CController.php:309

  • 0.0279 2146688 SiteController-> actionIndex()../CInlineAction.php:50

  • 0.0529 3875888 CController-> render()../ SiteController.php:33

  • 0.0529 3876112 CController-> renderPartial()../ CController.php:783

  • 0.0532 3877352 CBaseController-> renderFile()../ CController.php:870

  • 0.0532 3877672 CBaseController-> renderInternal()../CBaseController.php:96

  • 0.0539 3918144 require(foo_dir / protected / views / site / index.php')../CBaseController.php:127

  • 0.0705 4428584 CModule - > __ get()../CBaseController.php:199

  • 0.0705 4428584 CModule-> getComponent()../ CModule.php:104

  • 0.0723 4580360 CWebUser-> init()../ CMOSodule.php:388

  • 0.0736 4671144 CWebUser-> getIsGuest()../CWebUser.php:195

  • 0.0736 4671240 CWebUser-> getState()../ CWebUser.php:279

  • 0.0736 4671320 CWebUser-> getStateKeyPrefix()../CWebUser.php:557

跟踪类似于最后一个,Yii在$ _SESSION中找不到与用户组件相关的任何内容 .

EDIT #2: 我上传了E_NOTICE的跟踪,这里是:PHP notice

EDIT #3: 我最近将php更新为5.4 . 当我在使用php 5.3的服务器中运行应用程序时没有问题,也许幕后有通知但不是我用php 5.4得到的致命错误 . 正如bool.dev所写:这是一个完整的猜测 .

2 回答

  • 0

    对不起,我进行了大规模的重播,破坏了框架 . 我意识到问题是yii目录,因为我没有使用git跟踪它,当我在虚拟机中设置新的 生产环境 环境时,一切都很好,唯一的区别是框架目录 . 谢谢你的帮助 .

  • 0

    在虚拟机上从GitLab中提取主分支时,我遇到了类似的问题 . 它看起来无法找到用户和/或会话组件 .

    我已经存在了几天,但是我发现在Yii的index.php的第一行添加它(在“之后”

    error_reporting("E_ALL & ~E_STRICT");
    

相关问题