使用 laravel scout 在 meilisearch 中执行一些搜索。
以下代码:
$product = Product::search(null, function($meiliseach, $query, $options) use ($category) {
//some search...
$options["sort"] = ["created_at:desc",];
return $meiliseach->search(null, $options);
})
//fire paginate(), this will query the meilisearch and perform mySQL database lookup too (using PKs from meilisearch)
->paginate(10)
->load(['mainImage', 'seller'])
如您所见,在检索到 meilisearch 的搜索结果后,我需要加载一个关系(关系mainImage
和seller
.
两者都与搜索本身无关,但由于视图需要它们,因此需要加载它们。
当我转储此代码时
$product = Product::search(null, function($meiliseach, $query, $options) use ($category) {
//some search...
$options["sort"] = ["created_at:desc",];
return $meiliseach->search(null, $options);
})
//fire paginate(), this will query the meilisearch and perform mySQL database lookup too (using PKs from meilisearch)
->paginate(10)
dd($product);
根据要求,它是 type Illuminate\Pagination\LengthAwarePaginator
。一旦我load()
用来加载其他关系,它的类型Collection
就会破坏所有模板代码,例如:
{{ $items->appends(['q' => request()->q, 'sort' => request()->sort])->links() }}
知道如何保持这种Illuminate\Pagination\LengthAwarePaginator
类型吗?