在PHP中使用对象语法调用数组

时间:2015-08-25 16:45:31

标签: php yii

我收到错误"试图获取非对象的属性"尝试使用php对象语法调用数组时。

Yii::log(print_r($terminalReport->terminal->started_at,true));

该行实际上会正确记录started_at时间,然后输出错误。

此代码适用于生产服务器。但是,这不适用于最近设置的开发环境。

我是否缺少一个PHP模块,允许我使用该语法调用数组而不会抛出错误?

这是完整的堆栈跟踪:

2015/08/25 13:22:12 [error] [php] Trying to get property of non-object (/PATH/app/protected/models/TerminalReportManager.php:33)
Stack trace:
#0 /PATH/framework/yiilite.php(3100): TerminalController->renderInternal()
#1 /PATH/framework/yiilite.php(3524): TerminalController->renderFile()
#2 /PATH/framework/yiilite.php(3492): TerminalController->renderPartial()
#3 /PATH/app/protected/controllers/TerminalController.php(38): TerminalController->render()
#4 /PATH/framework/yiilite.php(3760): TerminalController->actionIndex()
#5 /PATH/framework/yiilite.php(3272): CInlineAction->runWithParams()
#6 /PATH/framework/yiilite.php(6526): TerminalController->runAction()
#7 /PATH/framework/yiilite.php(6535): CFilterChain->run()
#8 /PATH/app/protected/components/system/Controller.php(60): AccessControlFilter->filter()
#9 /PATH/framework/yiilite.php(6568): TerminalController->filterAccessControl()
#10 /PATH/framework/yiilite.php(6523): CInlineFilter->filter()
#11 /PATH/framework/yiilite.php(3262): CFilterChain->run()
#12 /PATH/framework/yiilite.php(3247): TerminalController->runActionWithFilters()
#13 /PATH/framework/yiilite.php(1689): TerminalController->run()
#14 /PATH/framework/yiilite.php(1609): CWebApplication->runController()
#15 /PATH/framework/yiilite.php(1135): CWebApplication->processRequest()
#16 /PATH/app/index.php(21): CWebApplication->run()
REQUEST_URI=/terminal

2 个答案:

答案 0 :(得分:0)

您的开发环境中的数据库中不存在terminal或其关系var_dump。使用$terminalReport $terminalReport->terminalSTUFF调试此代码,以检查哪个值为空。

答案 1 :(得分:0)

我收到的错误似乎实际上是有效的错误,但是应该忽略它们。

通过将php.ini中的error_reporting设置为

error_reporting = E_ERROR

我能够解决这个问题。