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

时间:2012-06-14 02:44:08

标签: yii frameworks yii-components

我想知道用户是否是使用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>

无时间记忆功能位置

  1. 0.0005 235120 {main}()../ index.php:0
  2. 0.0207 1548168 CApplication-&gt; run()../ index.php:13
  3. 0.0207 1548352 CWebApplication-&gt; processRequest()../ CApplication.php:162
  4. 0.0235 1725768 CWebApplication-&gt; runController()../ CWebApplication.php:135
  5. 0.0272 2103464 CController-&gt; run()../ CWebApplication.php:276
  6. 0.0279 2145872 CController-&gt; runActionWithFilters()../ CController.php:266
  7. 0.0279 2145984 CController-&gt; runAction()../ CController.php:287
  8. 0.0279 2146128 CInlineAction-&gt; runWithParams()../ CController.php:309
  9. 0.0279 2146688 SiteController-&gt; actionIndex()../ CInlineAction.php:50
  10. 0.0529 3875888 CController-&gt; render()../ SiteController.php:33
  11. 0.0529 3876112 CController-&gt; renderPartial()../ CController.php:783
  12. 0.0532 3877352 CBaseController-&gt; renderFile()../ CController.php:870
  13. 0.0532 3877672 CBaseController-&gt; renderInternal()../ CBaseController.php:96
  14. 0.0539 3918144 require(foo_dir / protected / views / site / index.php')../ CBaseController.php:127
  15. 0.0705 4428584 CModule-&gt; __ get()../ CBaseController.php:199
  16. 0.0705 4428584 CModule-&gt; getComponent()../ CModule.php:104
  17. 0.0723 4580360 CWebUser-&gt; init()../ CModule.php:388
  18. 0.0736 4671144 CWebUser-&gt; getIsGuest()../ CWebUser.php:195
  19. 0.0736 4671240 CWebUser-&gt; getState()../ CWebUser.php:279
  20. 0.0736 4671320 CWebUser-&gt; getStateKeyPrefix()../ CWebUser.php:557
  21. 跟踪类似于上一个跟踪,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");