我正在改建一个图书推荐个人网站。我想通过多个标准来过滤书籍。
例如,我想展示所有哲学和科幻小说的书籍。彼得·瓦特的《盲视》就是一个例子。
现在我只能做一个标准过滤器:
我有一个数据透视表
示范书
public function genres()
{
return $this->belongsToMany('App\Genre', 'bookgenres', 'book_id', 'genre_id');
}
型号类型:
public function books()
{
return $this->belongsToMany('App\Book', 'bookgenres', 'genre_id', 'book_id');
}
数据透视表书籍类型样本:id
,book_id
, genre_id
1 - 23 - 4
2 - 23 - 5
3 - 24 - 4
用简单的英语来说:第 23 本书既是科幻小说 (#4) 又是哲学 (#5),而第 24 本书只是科幻小说 (#4)
有了这些,我只需查询
$genre = 4;
$books = Genre::find($genre)->books()->get();
并使用标准的@foreach循环来列出书籍
To do:按两种流派(而不是一种流派)过滤集合。
提前致谢!