Laravel: поисковый запрос - PullRequest
0 голосов
/ 11 июня 2018

Это мой запрос для получения данных в нескольких таблицах.

Просмотр запроса:

$userPostDetails = Post::with(['product','postattribute.attribute.category','user.userDetails'])
                    ->orderBy('id','desc')
                    ->get();

Возвращает все данные в соответствии с моим запросом.

Что теперьЯ хочу, чтобы у меня был поиск по всем таблицам в запросе, который

[Post,Products,post_attributes,attrbute,category,users,userdetails]

, так что если в моем параметре поиска есть параметр поиска для

categroyTitle

он вернется с подробностями поиска. Если это NULL вернуть все.

То же самое для всех таблиц, которые я хочу найти:

Если In Я хочу искать в posts таблице для Active опубликовать то, что я пытался

if(isset($any_or_active)) {
   $is_any_active = $any_or_active;
 } 

идобавить это в запросе выше ->whereIn('demand_or_supply', $is_demand_supply)

, но что если

$is_demand_supply равно NULL?

Как я могу это сделать?

1 Ответ

0 голосов
/ 11 июня 2018

Я думаю, что использование Laravel Searchable (диванное красноречие) поможет.

для запуска композитора требуется диван / красноречие

в каждой модели, например

use Sofa\Eloquence\Eloquence;
protected $searchableColumns = [
   'country.name'(relation) => 20 (weight),
   'user.email' => 10,
   'user.name' => 25,
   'user.type' => 5,
   'gender' (attribute) => 10 (weight),
   'nationality' => 2,
];

это ссылкадля этого пакета на github https://github.com/jarektkaczyk/eloquence

и с его сайта это подробное объяснение https://softonsofa.com/laravel-searchable-the-best-package-for-eloquent/

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...