Laravel Enloquent:如何从连接的表中只获取某些列 [英] Laravel Eloquent: How to get only certain columns from joined tables

查看:418
本文介绍了Laravel Enloquent:如何从连接的表中只获取某些列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



主题模式:

  public function user(){
return $ this-> belongs_to('User');
}

用户模型:

  public function themes(){
return $ this-> has_many('Theme');
}

我的口才api通话如下所示:

  return Response :: eloquent(Theme :: with('user') - > get()); 

哪些返回主题的所有列(没关系),以及用户的所有列(不好)。我只需要用户模型中的用户名列,我如何限制查询呢?

解决方案

更改你的模型指定要选择的列:

  public function user(){
return $ this-> belongs_to 'User') - > select(array('id','username'));
}

不要忘了加入你加入的列。 / p>

I have got 2 joined tables in Eloquent namely themes and users.

theme model:

public function user() {
  return $this->belongs_to('User');
}

user model:

public function themes() {
  return $this->has_many('Theme');
}

My Eloquent api call looks as below:

return Response::eloquent(Theme::with('user')->get());

Which returns all columns from theme (that's fine), and all columns from user (not fine). I only need the 'username' column from the user model, how can I limit the query to that?

解决方案

Change your model to specify what columns you want selected:

public function user() {
  return $this->belongs_to('User')->select(array('id', 'username'));
}

And don't forget to include the column you're joining on.

这篇关于Laravel Enloquent:如何从连接的表中只获取某些列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆