Поиск в laravel 5 с провайдером AppService

В моем шаблоне мое поле поиска находится в заголовке, и мне нужно сделать свою функцию из AppServiceProvider так что я могу иметь доступ к нему со всех точек зрения.

Моя проблема в том, что я не знаю, как это сделать!

Вот моя логика:

Product имеет subcategory а также subcategory имеет category так что я не понимаю category_id в моих продуктах вместо этого я получаю subcategory_id в моей таблице продуктов.

Что я хочу сделать, это:

Шоу категория имена в выпадающем списке, но поиск в подкатегорий этой категории.

вот мое изображение формы:
изображение одно

Объясните:

У меня есть категория laptop и у него есть подкатегория hp lg asus которые у меня есть продукты в них. Я хочу поиск title xxxx в категории laptop и он смотрит на те подкатегории, которые hp, lg, asus

Пока у меня есть этот код в моем AppServiceProvider но не уверен в этом

View::composer('frontend.index', function ($view) {

$searchTitle = request('title');

$subcategories = null;

$subcategories = Subcategory::when($searchTitle, function ($query) use ($searchTitle) {
return $query->where('title', 'like', "%{$searchTitle}%");
})
->paginate(10)
->appends(request()->query());$view->with('subcategories', $subcategories);

});

И это моя форма:

<form class="search" action="">
<input type="hidden" name="type" value="product">
<input type="text" name="q" class="search_box" placeholder="Enter your keyword ..." value="">
<div class="collections-selector">
<select class="single-option-selector" data-option="collection-option" id="collection-option" name="collection">
@foreach($subcategories as $search)
<option value="{{$search->id}}">{{$search->title}}</option>
@endforeach
</select>
</div>
<button class="search_submit" type="submit">
<svg aria-hidden="true" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"></path></svg>
</button>
</form>

0

Решение

Следуйте по пути: project\app\Providers есть файл AppServiceProvider.php имея такой метод, как:

public function boot()
{

}

В этом boot метод, поместите свою логику и поделитесь тем, что вы хотите поделиться на всех представлениях, как:

View::share('key', 'value');

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

Ссылка

0

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

Я решил использовать метод контроллера вместо AppServiceProvider и получить маршрут any Таким образом, пользователь может использовать окно поиска в любом маршруте.

Route::any()

Спасибо за помощь.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector