Laravel 8 搜索

2021-07-26 09:59 更新

你可以使用 search 方法来搜索模型。search 方法接受一个用于搜索模型的字符串。你还需要在搜索查询上链式调用 get 方法,才能用给定的搜索语句查询与之匹配的 Eloquent 模型:

$orders = App\Models\Order::search('Star Trek')->get(); 

Scout 搜索返回 Eloquent 模型的集合,因此你可以直接从路由或控制器返回结果,它们会被自动转换成 JSON 格式:

use Illuminate\Http\Request;

Route::get('/search', function (Request $request) {
    return App\Models\Order::search($request->search)->get();
}); 

如果你想在它们返回 Eloquent 模型前得到原结果,你应该使用 raw 方法:

$orders = App\Models\Order::search('Star Trek')->raw(); 

搜索查询通常会在模型的 searchableAs 方法指定的索引上执行。当然,你也可以使用 within 方法指定应该搜索的自定义索引:

$orders = App\Models\Order::search('Star Trek')
    ->within('tv_shows_popularity_desc')
    ->get(); 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号