0

我刚刚将我的应用程序更新到 5.3 版,并且在许多路线中我得到 trying to get property of non-object 了例如,我有一个名为 post 的资源和另一个名为 Article 的资源,其中每个帖子都可以有一个 Articles。每篇文章都有一位作者。当我做

$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 仍然无法获取文章

4

1 回答 1

0

这是名称绑定问题。Laravel 5.3 需要在 kernel.php 以及组路由中进行一些配置https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0 该组应该有 'middleware' => ['bindings']

于 2020-05-12T09:55:11.763 回答