我刚刚将我的应用程序更新到 5.3 版,在许多路由中我得到了trying to get property of non-object
例如,我有一个名为帖子的资源和另一个称为文章的资源,每个帖子可以有一篇文章。每篇文章都有一个作者。 当我这样做时
$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 仍然无法获得文章
这是名称绑定问题。Laravel 5.3 需要在内核中.php以及组路由 https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0 中进行一些配置 该组应该有"中间件"=> ["绑定"]