Stack Overflow на русском Asked on December 30, 2021
всем привет,
Есть форма поля могут быть разные и любого количества
Запрос в браузерной строке вида
http://127.0.0.1:8000/search-profiles?searchID=&ageFrom=&ageTo=&country=
<div class="col-lg-12">
<form action="{{url('/search-profiles')}}">
<ul class="searchList clearfix align-l">
<li class="textToUpperCase searchProfileHeader">Search profile</li>
<li class="textToUpperCase searchIDField">
<span>Id</span>
<input type="text" class="searchID" name="searchID" id="" value="">
</li>
<li class="alterField">
<span>Age</span>
<input type="text" name="age1" class="alter1" id="" placeholder="From" value="">
<input type="text" name="age2" class="alter2" id="" placeholder="To" value="">
</li>
<li class="textToUpperCase searchIDField">
<span>Country</span>
<input type="text" class="searchID" name="country" id="" value="">
</li>
<li class="searchButtonBlock">
<button class="textToUpperCase searchButton">Search</button>
</li>
</ul>
</form>
</div>
public function search_profiles(Request $request)
{
//Здесь получим все переданные параметры
$id = $request->id;
$ageFrom = $request->ageFrom;
$ageTo = $request->ageTo;
$country = $request->country;
//Это страница шаблон на которой будут выводится профили $profiles
$page = Page::where('slug', '/')->first();
//Как тут формировать правильно чтобы если ищем по всем полям то показываем профили которые соответствуют всем полям
//если никакое не передано т.е пустые то искать по умолчанию к примеру все активные и т.д.
// если какое то одно передали значит только 1 и т.д.
$profiles = Profile::where('id', $id)->where('ageFrom', $ageFrom)->where('ageTo', $ageTo)->where('country', $country)->get();
return view('profiles', compact('page', 'profiles'));
}
Спасибо!
Советую ознакомиться с данным списком хороших практик: https://github.com/alexeymezenin/laravel-best-practices/
В частности:
Также, стоит глянуть как лучше именовать методы:
https://laravel.demiart.ru/laravel-naming-conventions/
По поводу Profile::where, после правильной валидации вы можете отправить $request->validated() в where() не перебирая каждое значение.
Answered by Evgeniy Kuznetsov on December 30, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP