0

我正在尝试为现实网站构建搜索功能。我希望能够一次通过多个参数进行搜索,类似于您在几乎任何零售网站上看到的内容。我在我的项目中使用 Laravel,我希望能够使用查询生成器,这样我就可以使用它内置的分页。

如果我尝试类似:

$listing = DB::select('select * from listings where city = 'Chicago');

我无法对结果进行分页。

另一种方法是这样做:

$listing = DB::table('listings')->where('city', 'Chicago')->get();

但问题是我不知道用户可能会在搜索中输入多少参数。那么我将如何构建一个看起来像这样的函数调用:

$listing = DB::table('listings')->where('city', 'Chicago')->where('askingPrice', '>', 50000)->where('bedrooms', '>', 3)->get();
4

1 回答 1

1

假设您有以下参数:

<?php
$parameters = array(
    'one' => 'a',
    'two' => 'b',
    'three' => 'c'
);

创建对象:

<?php
$listing = DB::table('listings');

然后,循环:

<?php
foreach ($parameters as $key => $value) {
    $listing = $listing->where($key, $value);
}

当然你必须改进它来处理>和其他人。但我想你明白了,对吧?

最后:

<?php
$listing = $listing->get();
于 2013-07-29T02:11:22.363 回答