如何在集合中使用 eloquent ->with 方法

How to use eloquent ->with method on collection

你可能会觉得这个问题很愚蠢。我可能没有做好研究,所以我想在这里问一下。我想知道如何在集合上使用 ->with 或它的等价物。这是代码:

$theLastCommentOfThisPost = $post->comments->with('user')->sortByDesc('id')->first();

我想得到这样的东西:

Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [id] => 19
            [commentable_type] => App\Post
            [commentable_id] => 123
            [comment] => totoototo
            [is_approved] => 1
            [user_id] => 1
            [created_at] => 2019-04-01
            [updated_at] => 2020-02-04
            [user] => App\User Object
                    (
                        [id] => 1
                        [name] => App\Post
                        [email] => totos@toto.fr
                    )
        )

)

谢谢

如果您想“加载”模型集合的关系,您可以使用 load 方法。

$post->comments->load('user')->.....

虽然不必加载所有评论而只获得一个评论,但您可以通过查询执行此操作:

$post->comments()->with('user')->latest()->first();

不太确定除了这个对象之外您还需要哪些数据。

Laravel 5.8 Docs - Eloquent Collections - Available Methods - load