尝试获得 属性 的 non-object 的非典型尝试...?
Untypical trying to get property of non-object...?
我对 Laravel 5 有疑问。我得到一个
trying to get property of non-object
当我尝试访问 blade 中的 eloquent 属性 时出错。
但这不正常,因为它工作正常:
{{ dd($item->relation->property) }}
虽然这会引发错误:
{{ $item->relation->property }}
那里发生了什么事?我已经尝试清除缓存,我也删除了编译的视图。
更新 19.01。 14:24美国东部时间
这是我的数据库的内容(我的 item-dump 中的所有项目):
它在 ID22 处停止计数:
[2016-01-19 13:17:34] local.INFO: 10
[2016-01-19 13:17:34] local.INFO: 11
[2016-01-19 13:17:34] local.INFO: 12
[2016-01-19 13:17:34] local.INFO: 19
[2016-01-19 13:17:34] local.INFO: 21
[2016-01-19 13:17:34] local.INFO: 22
[2016-01-19 13:17:34] local.ERROR: ErrorException: Trying to get property of non-object in /home/vagrant/Code/Emerald/storage/framework/views/e18baccf6428ca42183f454a47f2cc9156379826.php:22
我在访问此 object.
的任何其他 属性 之前执行了 Log::info($item->id)
您是否可以在循环中执行此操作,因此 dd()
在第一次迭代后完成执行?
当您使用 $item->relation
时,可能发生的情况是您的关系返回一个空值。当 Laravel 中的查询从数据库中没有任何结果时,您会得到 null
结果,其中没有 ->property
可获取。
您可以通过记录您的 $item->relation
值来验证这一点,或者将其记录到某个本地日志文件中,然后 tail -f 打开,或者通过在循环中使用 (new \Illuminate\Support\Debug\Dumper)->dump($item->relation);
将其打印到屏幕上。
我终于明白了!与我的第 22 项(发生错误的地方)的关系是 soft-deleted,但现在我这样做了,一切又恢复正常了:)
$item->relation()->withTrashed()->get()->first()->property
我对 Laravel 5 有疑问。我得到一个
trying to get property of non-object
当我尝试访问 blade 中的 eloquent 属性 时出错。
但这不正常,因为它工作正常:
{{ dd($item->relation->property) }}
虽然这会引发错误:
{{ $item->relation->property }}
那里发生了什么事?我已经尝试清除缓存,我也删除了编译的视图。
更新 19.01。 14:24美国东部时间
这是我的数据库的内容(我的 item-dump 中的所有项目):
它在 ID22 处停止计数:
[2016-01-19 13:17:34] local.INFO: 10
[2016-01-19 13:17:34] local.INFO: 11
[2016-01-19 13:17:34] local.INFO: 12
[2016-01-19 13:17:34] local.INFO: 19
[2016-01-19 13:17:34] local.INFO: 21
[2016-01-19 13:17:34] local.INFO: 22
[2016-01-19 13:17:34] local.ERROR: ErrorException: Trying to get property of non-object in /home/vagrant/Code/Emerald/storage/framework/views/e18baccf6428ca42183f454a47f2cc9156379826.php:22
我在访问此 object.
的任何其他 属性 之前执行了 Log::info($item->id)您是否可以在循环中执行此操作,因此 dd()
在第一次迭代后完成执行?
当您使用 $item->relation
时,可能发生的情况是您的关系返回一个空值。当 Laravel 中的查询从数据库中没有任何结果时,您会得到 null
结果,其中没有 ->property
可获取。
您可以通过记录您的 $item->relation
值来验证这一点,或者将其记录到某个本地日志文件中,然后 tail -f 打开,或者通过在循环中使用 (new \Illuminate\Support\Debug\Dumper)->dump($item->relation);
将其打印到屏幕上。
我终于明白了!与我的第 22 项(发生错误的地方)的关系是 soft-deleted,但现在我这样做了,一切又恢复正常了:)
$item->relation()->withTrashed()->get()->first()->property