Как использовать Laravel Scout & amp; TNTSearch в сочетании с реляционными базами данных?

Допустим, у меня есть таблица «пользователи», которую я хочу полностью найти с помощью Laravel Scout. У него много атрибутов, среди которых хобби пользователя.

  • Хобби пользователя не находится прямо в users Таблица,
    но по реляционной таблице. Таким образом, хобби-идентификатор размещается для каждого пользователя в
    users Таблица.

  • Теперь, когда я ищу football это не индексируется Laravel
    Scout. Только идентификатор хобби football индексируется, но это из
    Конечно не так, как я этого хочу.

Кто-нибудь знает, как я могу убедиться, что поиск football возвращает пользователей, у которых футбол в качестве хобби?

Спасибо за ваше время!

3

Решение

Вы имеете полный контроль над тем, что именно индексируется через toSearchableArray() так что вы можете сделать что-то вроде

class User extends Model
{
use Searchable;

// ...

public function toSearchableArray()
{
return array_merge($this->toArray(), [
'hobby' => $this->hobby === null ? '' : $this->hobby->name;
]);
}

// ...

public function hobby()
{
return $this->belongsTo(Hobby::class);
}

}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]