5

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

Undefined property: CWebApplication::$user

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

我曾尝试通过以下方式检查组件是否可用

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

但是它失败了¿即使没有定义 Yii::app()->user,我如何检查用户是否是访客?¿使用 isGuest 时我应该收到此通知吗?

编辑:我将 error_reporting 指令更改为“E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT”,我需要继续前进。现在我得到了这个致命错误:

致命错误:在第 530 行的 home/mario/projects/ciudad_wiki/yii/framework/web/auth/CWebUser.php 中的非对象上调用成员函数 getId()

无时间记忆功能位置

  1. 0.0005 235120 {main}( ) ../index.php:0
  2. 0.0207 1548168 CApplication->run() ../index.php:13
  3. 0.0207 1548352 CWebApplication->processRequest() ../CApplication.php:162
  4. 0.0235 1725768 CWebApplication->runController() ../CWebApplication.php:135
  5. 0.0272 2103464 CController->运行()../CWebApplication.php:276
  6. 0.0279 2145872 CController->runActionWithFilters()../CController.php:266
  7. 0.0279 2145984 CController->runAction() ../CController.php:287
  8. 0.0279 2146128 CInlineAction->runWithParams() ../CController.php:309
  9. 0.0279 2146688 站点控制器->actionIndex() ../CInlineAction.php:50
  10. 0.0529 3875888 CController->render() ../SiteController.php:33
  11. 0.0529 3876112 CController->renderPartial() ../CController.php:783
  12. 0.0532 3877352 CBaseController->renderFile() ../CController.php:870
  13. 0.0532 3877672 CBaseController->renderInternal() ../CBaseController.php:96
  14. 0.0539 3918144 要求(foo_dir/protected/views/site/index.php')../CBaseController.php:127
  15. 0.0705 4428584 CModule->__get() ../CBaseController.php:199
  16. 0.0705 4428584 CModule->getComponent() ../CModule.php:104
  17. 0.0723 4580360 CWebUser->init() ../CModule.php:388
  18. 0.0736 4671144 CWebUser->getIsGuest() ../CWebUser.php:195
  19. 0.0736 4671240 CWebUser->getState() ../CWebUser.php:279
  20. 0.0736 4671320 CWebUser->getStateKeyPrefix() ../CWebUser.php:557

trace 与上一条类似,Yii 在 $_SESSION 中找不到与用户组件相关的任何内容。

编辑#2:我上传了带有 E_NOTICE 的跟踪,这里是: PHP 通知

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

4

2 回答 2

0

抱歉,我运行了一个破坏框架的大型替换。我意识到问题出在 yii 目录,因为我没有用 git 跟踪它,当我在虚拟机中设置新的生产环境时,一切都恢复正常,唯一的区别是框架目录。谢谢你的帮助。

于 2012-06-18T13:54:45.487 回答
-1

从虚拟机上的 GitLab 拉出主分支时,我遇到了类似的问题。看起来它找不到用户和/或会话组件。

我已经有好几天了,但是我发现在 Yii 的 index.php 的第一行中添加了这个(就在“

error_reporting("E_ALL & ~E_STRICT");
于 2013-01-15T15:58:19.697 回答