laravel 如何在子相关模型中只获取选中的列?

pdtvr36n  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(123)

我有两个模型,UserPost,其中一个**User可以有多个Post模型。在我的应用程序中,当查询User时,我只想从相关的Post模型中检索title**列。下面是我当前的代码:

class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

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

下面是我尝试检索相关**Post型号的title**列的内容:

$user = User::with('posts:title')-\>get();

但是,这将检索**Post模型的所有列。如何修改代码,以便仅检索相关Post模型的title**列?谢谢!

wljmcqd8

wljmcqd81#

如果你想获得选中列的数据,你还需要传递FK来识别它的关系。
下面的例子告诉帖子还需要user_id列来标识POSTUSER模型之间的关系

$user = User::with('posts:title,user_id')->get();
mnemlml8

mnemlml82#

试试这个

$user = User::with(['posts' => function ($query) {
                      $query->select('title');
              }])->get();

相关问题