构建基于输入的查询

时间:2016-07-18 19:38:40

标签: sql laravel where

matchthese=['name'=> Input::get('name'),];
Matchthose['place'=> Input::get('place')];
$Select_db = Db::table('actvities')
              ->where([[matchthese],[matchthose]])
              ->orwhere('place', Input::get('place'))
              ->orwhere('color', Input::get('color'))
              ->orwhere('people',Input::get('people'))
              ->get();

但是这个地方不能正常工作。我想要第一个或第二个等等。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您可以将skiptakefirst

一起使用

例如,对于第一个,您可以直接使用first

$Select_db = Db::table('actvities')
              ->where([['name', '=', Input::get('name')],['place', '=', Input::get('place')]])
              ->orwhere('place', Input::get('place'))
              ->orwhere('color', Input::get('color'))
              ->orwhere('people',Input::get('people'))
              ->take(1)->first();

第二个:

$Select_db = Db::table('actvities')
              ->where([['name', '=', Input::get('name')],['place', '=', Input::get('place')]])
              ->orwhere('place', Input::get('place'))
              ->orwhere('color', Input::get('color'))
              ->orwhere('people',Input::get('people'))
              ->skip(1)->take(1)->first();

如果您需要循环搜索结果,只需使用foreach

即可
$Select_db = Db::table('actvities')
              ->where([['name', '=', Input::get('name')],['place', '=', Input::get('place')]])
              ->orwhere('place', Input::get('place'))
              ->orwhere('color', Input::get('color'))
              ->orwhere('people',Input::get('people'))
              ->get();
foreach($Select_db as $record) {
    //Do something with $record.
}

我希望这会对你有所帮助。