【发布时间】:2018-10-21 04:06:04
【问题描述】:
在我的网站中,我需要提供一个搜索选项,用户可以在其中搜索不同的产品。现在我想如果搜索键与产品匹配显示它,并显示一些建议包含与该搜索关键字以空格分隔。
list($type,$search) = explode(":", $key);
$searchValues = preg_split('/\s+/', $search, -1, PREG_SPLIT_NO_EMPTY);
ProductDetail::join('product_brands','product_details.brand_id','product_brands.id')
->select('brand_name as manufacturer','product_availability as isInStock','product_details.*','product_price as displayPrice')
->where(function ($q) use ($searchValues,$search) {
$q->where('product_name', 'like', "%{$search}%");
foreach ($searchValues as $value) {
$q->orWhere('product_name', 'like', "%{$value}%");
}
})->paginate(5);
现在这个结果的问题是,它没有根据最佳/第一匹配显示。因此用户无法在其他建议列表中找到他们正在寻找的内容。
那么如何得到最匹配的订单呢?
【问题讨论】:
标签: sql laravel search laravel-5