Laravel高级搜索指南

时间:2017-11-20 23:58:50

标签: laravel

我想询问您关于laravel高级搜索的建议,目前我正在电子商务网站上工作,我需要创建搜索表单,用户可以选择表格中的任何字段,包括price rangecategorybrands等等,并取回结果。

现在我的问题是你建议我使用Laravel Scout或制作自定义函数(如下面的代码)并扩展它?

$query = DB::table('rooms')
        ->join("salereservation", "salereservation.room_id", "=", "rooms.room_id")
        ->join("customers", "customers.id", "=", "salereservation.customer_id")
        ->where("salereservation.sale_status",'=',1)
        ->select('rooms.*', 'salereservation.*', 'customers.*');

if($fname!=''){
    $query->where("fname",'like',"%$fname%");
}

if($lname!=''){
    $query->where("lname",'like',"%$lname%");
}
if($time_in!=''){
   $query->where("start_datetime",'like',"%$time_in%");
}
if($time_out!=''){
    $query->where("end_datetime",'like',"%$time_out%");
}
if($phone!=''){
    $query->where("phone",'like',"%$phone%");
}
if($room_no!=''){
  $query->where("room_no",'like',"%$room_no%");
}
$data = $query->get(); //finally get the result

显然,上面的代码不是我需要的选项- Source

请帮我做出正确的决定。

  

PS:这个应用程序的数据库将是庞大的,所以我需要一些东西来处理大数据库。

谢谢。

2 个答案:

答案 0 :(得分:2)

我会为您描述一些选项: 1-laravel中简单的雄辩(或原始)查询,它不是很好,但它有它的缺点,如代码很乱,性能不好,UX也是如此。 2-有algolia,它用户友好,易于安装,但它相当昂贵(相信我知道)。 3-最后使用ELASTICSEARCH,它是像algolia这样的搜索引擎,但是有了骗子定价和更多选项,你可以根据自己的需要进行配置。

答案 1 :(得分:0)

是的,如果您的功能很重,您可以使用laravel scout 。或者,如果您使用正常功能,则可以使用服装功能。现在您可以选择哪些?