Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть некая форма для поиска
<form action="/search" method="GET">
<input value="{{request()->query('search')}}" type="text" name="search" placeholder="Search...">
<button type="submit"><i class="searchicon"></i></button>
</form>
В web.php такой роут
Route::get('/search', 'ShowCustomerController@search');
В ShowCustomerController такая функция
public function search(){
$search = request()->query('search');
$products = Products::where('title', 'LIKE', "%{$search}%")->get();
return view('searchresults')->with('products', $products);
После поиска слова "product1" у меня в URL отображается /search?search=product1
Сталкиваюсь с проблеммой когда потом хочу отфильтровать этот поиск.
На той же странице есть другая форма
<form action="/filter">
<input value="0" min="0" name="minprice" type="number">
<input min="0" name="maxprice" type="number">
</form>
в web.php такой роут
Route::get('/filter', 'ShowCustomerController@filter');
Дальше в контроллере
public function filter(Request $request)
{
$url = url()->previous().'/'.'filter?minprice=0&maxprice=2323'; ///такая строка мне нужна потом в URL
$product = Product::with(***тут нужно принимать только те продукты которые уже выбраны по поиску search->query) ***)
if ($request->has('minprice')) {
$users->where('price', '<', "%$request->minprice%");
}
}
Вот я запутался и не знаю что делать дальше.
Так как на выходе после фильтрации в URL мне нужна строка.
/search?search=product1/filter?minprice=0&maxprice=2323
Я не понимаю что такое request()->query(); и не понимаю как сделать URL тот который мне нужен.
Помогите пожалуйста, тот кто разбирается.
Не в сети
Если в контроллере есть две функции
public function search(){
$products = 'The list of users';
}
public function filter(){
$products
}
Можно ли получить переменную в другой функции?
Не в сети
Решил вопрос так
public function search(){
$products = 'The list of users';
return $products
}
public function filter(){
$products = $this->search()->products;
}
Изменено dmytrotus (23.08.2019 17:55:58)
Не в сети
Копаю дальше.
Мне нужно в методе
public function filter(Request $request)
Фильтровать результат из метода
public function search()
Переменную с результатами я могу передать. Но проблемма в том что во время выполнения метода filter массив из продуктами очищается так как никто не обращается к методу
public function search()
Подскажите как быть?
Не в сети
Страницы 1