toSearchableArray() не вызывается?
У меня есть работающая функция поиска на одной из моих моделей (рецепт) с использованием Laravel Scout и TNTSearch: https://github.com/teamtnt/laravel-scout-tntsearch-driver
Я хочу добавить одну и ту же функцию поиска в другую модель (Ингредиент)
Я пытаюсь вернуть результаты поиска в виде массива с помощью toSearchableArray(), поэтому для тестирования я сделал это в своей модели:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
class Ingredient extends Model
{
use Searchable;
public $asYouType = true;
public function recipes()
{
return $this->belongsToMany('App\Recipe');
}
public function toSearchableArray()
{
$array = $this->toArray();
return $array;
}
}
В моем контроллере я пытаюсь это:
public function search(Request $request)
{
$results = Ingredient::search($request->q)->get()->toArray();
return $results;
}
Тем не менее, я все еще возвращаю свои данные как коллекцию. Я использую аналогичную настройку для моей другой модели (Рецепт), которая возвращает массив результатов, как и ожидалось:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
class Recipe extends Model
{
use Searchable;
public $asYouType = true;
public function ingredients()
{
return $this->belongsToMany('App\Ingredient');
}
public function toSearchableArray()
{
$array = $this->toArray();
return $array;
}
}
Тогда опять же в модели:
public function search(Request $request)
{
$resultsrecipes = Recipe::search($request->q)->get()->load('tags','ingredients','images');
return $resultsrecipes;
}
Это работает для модели рецепта, даже без load()
функция.
Я предполагаю, что функция toSearchableArray () в моей модели Ingredient не вызывается, поэтому я предполагаю, что мой вопрос заключается в том, как проверить это и можно ли это исправить?
Я попытался сбросить работника очереди с помощью php artisan queue:restart
, попытался сбросить и добавить записи, кажется, ничего не работает.
1 ответ
Оказывается, php artisan scout:flush не работает с TNTSearch, поэтому мне пришлось удалить индексный файл вручную и запустить php artisan scout:import, чтобы обновить параметры поиска для новой модели.