在Laravel中,我有两个表:
书<我> 表有两个字段(<我> id , <我> )名称我>我>我>
<我> 用户有三个字段(<我> id , <我> , <我> book_id ) 我>我>我>我>
如何获得阅读超过五本书的用户?
你给我们看的是一对多的关系,多个User
属于一个Book
。也就是说,一个用户只能有一本相关的书。您想要的可能是数据透视表的多对多关系,如下所示:
users table: id, name
book_user pivot table: book_id, user_id
books table: id, name
// then relationships:
// User model
public function books()
{
return $this->belongsToMany('Book');
}
// Book model
public function users()
{
return $this->belongsToMany('User');
}
// and calling relations:
$user = User::first();
$user->books; // collection of Book models
// Now to fetch users that have more than 5 books related, what you asked:
User::has('books', '>', 5)->get(); // collection of User models