laravel Форма поиска данных, которых нет в базе данных - PullRequest
0 голосов
/ 30 апреля 2020

Здравствуйте, я пытаюсь реализовать поиск в моем приложении. вот что я сделал до сих пор в моем методе индекса

    public function index()
    {

        $search=request()->query('search');

        if($search)
        {
            $city = City::where('name', request()->query('search'))->first();
            $tution = Tution::where('city_id', $city->id)->paginate(3);

           return view('ShowTutions.AllTutions')->with('tution',$tution)
        ->with('user',User::all())->with('city',City::all());   

        }


            return view('ShowTutions.AllTutions')->with('tution',Tution::Paginate(3))
            ->with('user',User::all())->with('city',City::all());


    }

, он работает полностью, но проблема в том, что если пользователь вводит значение, которого нет в базе данных, он показывает ошибку. Попытка получить идентификатор свойства. 'необъектного, что я действительно хочу, если нет обучения, которое будет реализовано в этом городе, то оно не должно показывать ничего найденного.

1 Ответ

0 голосов
/ 30 апреля 2020

Вы получаете ошибку, потому что пользователь искал что-то, чего там нет. Вы можете исправить это так:

  if($search)
        {
            $city = City::where('name', request()->query('search'))->first();
            $tution = Tution::where('city_id', $city->id)->paginate(3);

 if(!isEmpty($city) && !isEmpty($tution)){

           return view('ShowTutions.AllTutions')->with('tution',$tution)
        ->with('user',User::all())->with('city',City::all());   
}
        }

Но для поиска больших объемов данных я бы посоветовал изучить ajax. Это обработает запрос так, что пользователь не будет перенаправлен каждый раз, когда он пытается что-то искать

...