1

我有一个包含 4 个字段的搜索表单:

  1. 标题
  2. 流派->(单独查询以查找流派)
  3. 评分
  4. 按 -> 排序(包含在所有查询中)

我正在尝试优化搜索功能,因为它大约有 300 行长。我所做的是写出所有可能的组合——查询中应该包含什么。

if ( empty($title) && $genre === 'All' && $rating === '0') {}
if (!empty($title) && $genre === 'All' && $rating === '0') {}

有 8 种可能的组合,我不知道如何优化它。

4

1 回答 1

3

我想我找到了一个非常好的解决方案,它也可以让添加额外的标准变得轻而易举。

我不知道你的班级名称是什么,所以我假设你有一个书架和一个模型书。

因此,在我设置的快速测试表上,这似乎对我有用。

$books = new Book;

if(!empty($title))
    $books = $books->where('title','=',$title);

if(!empty($genre))
    $books = $books->where('genre','=',$genre);

if(!empty($rating))
    $books = $books->where('rating','=',$rating);

$books = $books->get();
于 2013-07-19T21:27:35.433 回答