我有一个User
具有以下方法的模型:
public function articles()
{
return $this->hasMany('App\Article');
}
还有Article
模型,它具有:
public function user()
{
return $this->belongsTo('App\User');
}
我想返回包含他们每篇文章的用户列表。所以有了这个:
// only returns list of users
return $user = User::all();
并具有以下内容:
$user = User::all();
foreach ($user[0]->articles as $article) {
return $article;
}
我只有第一篇文章。有什么办法(在laravel中)检索每个人的文章的整个列表?
您需要使用方法来调用,以渴望加载所有文章。
$user = User::with('articles')->get();
dd($user);
或者,如果您想延迟加载,则可以。
$user = User::get();
dd($user->articles());
您可以使用select()选择特定的列-例如
$user = User::select('name','email')->get();
如果要在with()中选择特定的列,则
$user = User::with(['articles' => function($query){
$query->select('id','title');
}])->get();
要么
$user = User::with(['articles' => function($query){
$query->select('id','title');
}])->select('name','email')->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句