我想知道用户是否是使用Yii :: app() - > user-> isGuest的访客,但我收到以下通知:
Undefined property: CWebApplication::$user
显然组件用户尚未在应用程序中定义,我想知道原因。
我曾尝试通过
检查该组件是否可用
if(isset(Yii::app()->user))
然而它失败了¿即使未定义Yii :: app() - >用户,我如何检查用户是否是来宾?¿我在使用isGuest时是否应该注意到这一点?
编辑:我将error_reporting指令更改为“E_ALL& ~E_NOTICE& ~E_DEPRECATED& ~E_STRICT”我需要继续前进。现在我收到了致命错误:
致命错误:在第530行的home / mario / projects / ciudad_wiki / yii / framework / web / auth / CWebUser.php中的非对象上调用成员函数getId() < / p>
无时间记忆功能位置
- 0.0005 235120 {main}()../ index.php:0
- 0.0207 1548168 CApplication-&gt; run()../ index.php:13
- 0.0207 1548352 CWebApplication-&gt; processRequest()../ CApplication.php:162
- 0.0235 1725768 CWebApplication-&gt; runController()../ CWebApplication.php:135
- 0.0272 2103464 CController-&gt; run()../ CWebApplication.php:276
- 0.0279 2145872 CController-&gt; runActionWithFilters()../ CController.php:266
- 0.0279 2145984 CController-&gt; runAction()../ CController.php:287
- 0.0279 2146128 CInlineAction-&gt; runWithParams()../ CController.php:309
- 0.0279 2146688 SiteController-&gt; actionIndex()../ CInlineAction.php:50
- 0.0529 3875888 CController-&gt; render()../ SiteController.php:33
- 0.0529 3876112 CController-&gt; renderPartial()../ CController.php:783
- 0.0532 3877352 CBaseController-&gt; renderFile()../ CController.php:870
- 0.0532 3877672 CBaseController-&gt; renderInternal()../ CBaseController.php:96
- 0.0539 3918144 require(foo_dir / protected / views / site / index.php')../ CBaseController.php:127
- 0.0705 4428584 CModule-&gt; __ get()../ CBaseController.php:199
- 0.0705 4428584 CModule-&gt; getComponent()../ CModule.php:104
- 0.0723 4580360 CWebUser-&gt; init()../ CModule.php:388
- 0.0736 4671144 CWebUser-&gt; getIsGuest()../ CWebUser.php:195
- 0.0736 4671240 CWebUser-&gt; getState()../ CWebUser.php:279
- 0.0736 4671320 CWebUser-&gt; getStateKeyPrefix()../ CWebUser.php:557
醇>
跟踪类似于上一个跟踪,Yii在与用户组件相关的$ _SESSION中找不到任何内容。
编辑#2:我上传了E_NOTICE的跟踪,这里是:
PHP notice
编辑#3:我最近将php更新为5.4。当我在使用php 5.3的服务器中运行应用程序时没有问题,也许幕后有通知但不是我用php 5.4得到的致命错误。正如bool.dev所写:这是一个完整的猜测。
2 个答案:
答案 0 :(得分:0)
抱歉,我进行了大规模的重播,破坏了框架。我意识到问题是yii目录,因为我没有用git跟踪它,当我在虚拟机中设置一个新的生产环境时,一切都很好,唯一的区别就是框架目录。谢谢你的帮助。
答案 1 :(得分:0)
在虚拟机上从GitLab中提取主分支时遇到了类似的问题。它看起来无法找到用户和/或会话组件。
我已经存在了好几天了,但是我发现在Yii的index.php的第一行添加了这个(在“之后”)
error_reporting("E_ALL & ~E_STRICT");