0

使用 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 的搜索结果后,我需要加载一个关系(关系mainImageseller.

两者都与搜索本身无关,但由于视图需要它们,因此需要加载它们。

当我转储此代码时

$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类型吗?

4

0 回答 0