Результаты поиска на основе условных отношений

я использую Laravel 5.5 и используя TNTSearch engine за Laravel Scout,

Проблема, с которой я столкнулся, связана с eloquent relationships и могу ли я сделать условные проверки для них.

Laravel Scout включает в себя where function как eloquent, но это действительно глупая версия, которая позволяет только проверять столбцы и ничего больше.

Это мой ток Search Controller :

protected function search() {
$query = request()->input('query');

$meta = $this->searchMeta($query, 10);
$items = $this->searchItems($query, 10);

return view('model.search.index')->with([
'meta' => $meta,
'items' => $items
]);
}

protected function searchMeta($query, $limit = 100) {
return ItemMeta::search($query, function($tntsearch, $query, $options) use ($limit) {

return $tntsearch->search($query, $limit);
})->where('company_id', \Auth::user()->company_id)->get();
}

protected function searchItems($query, $limit = 100) {
return Item::search($query, function($tntsearch, $query, $options) use ($limit) {
return $tntsearch->search($query, $limit);
})->get(); // Need to be restricted to company
}

Цель того, что я хочу сделать, — проверить, относится ли данный элемент к компании текущего пользователя. Я делаю это, имея company_id column на Meta table, элемент затем имеет столбец с именем "meta_id" который является внешним ключом к Meta.

Как бы я показывал результаты только для текущей компании, когда элемент использует отношение, чтобы проверить, есть ли у пользователя доступ или нет? Если это невозможно с Scout или TNTSearch engine, тогда, если у вас есть какие-либо альтернативы, которые позволяют мне сделать это, пожалуйста, дайте мне знать.

2

Решение

Задача ещё не решена.

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

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

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