你好,我正试图在我的应用程序中实现搜索,这是我目前在我的索引方法中所做的工作
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());
}
它的工作完全找到,但问题是,如果用户输入一个值,这是没有在数据库中,它显示错误试图获得属性'id'的非对象what我真的想,如果有没有tution这是realted到该城市,它应该显示没有找到结果。
你得到的错误是因为用户搜索了一些不存在的东西。你可以像这样修复它。
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. 这将处理请求,这样用户就不会在每次试图寻找东西时被重定向