Laravel从模型中获取具有特定数据和关系的记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel从模型中获取具有特定数据和关系的记录相关的知识,希望对你有一定的参考价值。

我有模特帖子:

protected $with = ['user']

public function user() {
    return $this->belongsTo(User::class);
}

在控制器上我只设置标题和图像:

$posts = Post::get(['title', 'image']);

关系用户返回null。

@foreach($posts as $post)
   User: {{ $post->user->name }} //null
@endforeach

为什么?如果我从get方法删除数组,那么关系正在工作,如果我设置数组,那么关系用户返回null。请帮忙。

答案

使用Post::get(['title', 'image']);,您指定只需要这些列。

如果你想使用这种方法,

$posts = Post::with('user')->get(['title', 'image']);

或者您可以包含不使用protected $with属性的用户,而是将protected $appends添加到您的模型中作为默认字段

// In Post Class:
protected $appends = "user";

// Then this should work
$posts = Post::get(['title', 'image', 'user']);

以上是关于Laravel从模型中获取具有特定数据和关系的记录的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8:获取特定关系的“morphOne”类的所有模型的类名

Laravel:如何从具有关系的 3 个表中获取数据

Laravel 雄辩模型如何从关系表中获取数据

Laravel 从关系表中获取数据

Laravel - 我有一个具有不同角色的用户模型。如何在具有特定角色的用户之间建立关系? [关闭]

如何从具有父子关系的模型中获取下一个和上一个记录