@hakimi1

Как сделать запрос на поиск id городов?

Нужно сделать вывод билетов по поиску. Я написал вывод рейсов, но перед этим нужно написать поиск id городов.
Вот сама форма:
<form id="searchh" action="{{ url('/search') }}" method="get">
            @csrf
            <p id="bilet">Поиск билетов</p>
            <div id="search1">
                <input type="search" name="city_departure" id="search12" placeholder="Откуда">
                <input type="search" name="city_arrival" id="search2" placeholder="Куда">
                <input type="date" name="day_date">
                <button type="submit">Найти</button>
                <input id="search" type="hidden" name="search" value="{{Request::get('search')}}">
            </div>
        </form>


Вывод рейсов:

$mass = Trip::all()
                ->where('date', $day_date)
                ->where('departure_id', $city_departure)
                ->where('landing_id', $city_arrival);
            return view('search', compact('mass', 'mass1'));


Пробовал написать перед кодом рейсов такое:
if (isset($_GET['action']) and $_GET['action'] == 'search') {
            $day_date = $_GET['date'];
            $city_departure = $_GET['city_departure'];
            $city_arrival = $_GET['city_arrival'];
            $mass1=City::all()
                ->where('id')
                ->where('name')
                ->get();

Всё перерыл, бошка не варит уже.
В ларавеле изучали только интернет - магазин, а это ультра-сложная zhopa.
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
1. Зачем csrf при get запросе?
2. Вместо url('/search') лучше использовать named routes и route('search')
3. Надо забыть про $_GET и isset($_GET). У вас есть $request->get() и $request->has()
4. Можно забыть про $request->has() у вас есть query()->when()
5. Зачем вы делаете all()? Вы дергаете все записи потом это фильтруете? Зачем вам тогда БД?

Итого:
$items = Trip::when($request->get('day_date'), function($query, $date){ $query->where('date', $date); })
                ->when($request->get('city_departure'), function($query, $departure_id){ $query->where('departure_id', $departure_id); })
                ->when($request->get('city_arrival'), function($query, $landing_id){ $query->where('landing_id', $landing_id); })
                ->get();
            return view('search')->with(['mass' => $items]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы