【发布时间】:2020-08-28 01:57:10
【问题描述】:
我刚刚将我的应用程序更新到 5.3 版,并且在许多路线中我得到了
trying to get property of non-object
例如,我有一个名为 post 的资源和另一个名为 Article 的资源,其中每个帖子都可以有一篇文章。每篇文章都有一位作者。当我这样做时
$article->post->writer;
我收到trying to get property 'writer' of non-object
在从 5.2 更新之前,这条路线以及其他路线都运行良好。我在这里错过了什么吗?作曲家更新成功后我应该做些什么吗?
编辑:文章、帖子和作者都存在于数据库中。当我尝试返回 $article 时,我得到了这个。
{
"article": []
}
当我切换回 laravel 5.2 时,我得到了正确的文章
编辑2:它是路由投标问题。我正在使用隐式模型绑定,所以当我将文章的 ID 传递给我的路由时,Laravel 会获取资源。但现在显然它没有这样做。我按照此处的说明进行绑定 https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0 但 Laravel 仍然无法获取文章
【问题讨论】:
-
你的文章没有帖子,
$article->post是null -
正如错误提示的那样,您正在尝试获取非对象的
writer属性。可能为空。检查您的“文章 -> 帖子”关系。如果您找不到问题,您应该提供更多详细信息 -
你也应该添加你的关系代码。