我想知道用户是否是使用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 回答
对不起,我进行了大规模的重播,破坏了框架 . 我意识到问题是yii目录,因为我没有使用git跟踪它,当我在虚拟机中设置新的 生产环境 环境时,一切都很好,唯一的区别是框架目录 . 谢谢你的帮助 .
在虚拟机上从GitLab中提取主分支时,我遇到了类似的问题 . 它看起来无法找到用户和/或会话组件 .
我已经存在了几天,但是我发现在Yii的index.php的第一行添加它(在“之后”