Mysql 在Laravel 6中搜索

Mysql 在Laravel 6中搜索,mysql,laravel,search,eloquent,Mysql,Laravel,Search,Eloquent,我在Laravel 6中的搜索方法有问题 我的数据库有一个表products,我的搜索方法查找slug属性来完成这项任务,问题是当我以其他顺序搜索产品名称时 有这个产品“FONE XIAOMI”,如果我这样搜索,会正确返回产品。 但是如果我搜索“小米坊”,就没有结果了。 我做错了什么 搜索方法: public function autosearch($slug) { if(mb_strlen($slug,'utf-8') > 1){ $search = ' '.$

我在Laravel 6中的搜索方法有问题

我的数据库有一个表products,我的搜索方法查找
slug
属性来完成这项任务,问题是当我以其他顺序搜索产品名称时

有这个产品“FONE XIAOMI”,如果我这样搜索,会正确返回产品。 但是如果我搜索“小米坊”,就没有结果了。 我做错了什么

搜索方法:

 public function autosearch($slug)
{
    if(mb_strlen($slug,'utf-8') > 1){
        $search = ' '.$slug;
        
        $searchLocale = $this->storeLocale->locale;
        if (Session::has('language') && $this->storeSettings->is_language)
        {
            $searchLocale = Language::find(Session::get('language'))->locale;
        }
        $prods = Product::byStore()->isActive();
        
        $prods = $prods->where(function($query) use($slug, $search, $searchLocale){
            $query->where('ref_code', 'like', "%{$slug}%")
            ->orWhereTranslationLike('name', "%{$search}%", $searchLocale)
            ->orWhereTranslationLike('name', "{$slug}%", $searchLocale);
        })->take(10)->get();
        return view('load.suggest',compact('prods','slug'));
    }
    return "";
}
数据库中的产品段塞:

fone-xiaomi-lxq6540vxj

您能否显示
或where translationlike()
所做的事情,因为我有一个包含产品名称的产品翻译表,因此如果我需要查询名称,必须来自此表,而不是产品表。有两种方法可以使用explode&-,来分隔单词,或者另一种方法是使用MySQL提供的全文搜索,您甚至可以使用最新的全文搜索工具