首页 > 解决方案 > Laravel Eloquent 查询返回非对象

问题描述

我正在尝试减少执行的 SQL 查询的数量。我有一个帖子,我想在其中获取该帖子的作者并将其列出在页面上。为了减少 SQL 查询的数量,我有以下代码:

$posts = Post:all();
$posts->load('user');
$posts->first()->user;

我收到错误/通知“尝试获取非对象的属性‘用户’”。我该如何摆脱这个错误?

标签: laraveleloquenteager-loading

解决方案


急切加载将此操作减少到只有 2 个查询


    public function example()
    {
        $posts = Posts::with('user')->get();

        foreach ($posts as $post) {
            echo $post->user->name;
        }
    }


推荐阅读