显示所有用户的所有帖子

时间:2016-12-14 23:29:59

标签: php laravel-5 eloquent

例如,我们有两个表

用户和帖子

用户有很多帖子,但帖子属于一个用户。

我想在一个页面上显示用户的所有帖子。

例如: posts table

那么如何在一个页面上显示所有用户的多个帖子?

1 个答案:

答案 0 :(得分:0)

首先:让你的控制器中的所有用户

$users = User::All();

然后您可以将 $ users 传递给您的视图并循环遍历所有$ users

foreach($users as $user){
   echo $user_email = $user->email;
   $user_posts = $user->post; //multiple posts, but need to establish relation
   echo "posts for this user";
   foreach($user_posts as $p){
       echo $p->title;
   }
}

注意:对于大数据,它可能更慢而且不是很好的做法。

用户表的用户模型:应该与帖子

有onetoMany关系
...........
...........
public function posts(){
    return $this->hasMany('App\Post','user_id');
}
..........
..........
帖子表

发布模型

........
........
public function  user(){
    return $this->belongsTo('App\User');
}
.........
.........

您需要将user_id字段放在帖子表中。
另请参阅延迟加载急切加载