laravel表单搜索数据库中没有的数据。

问题描述 投票:0回答:1

你好,我正试图在我的应用程序中实现搜索,这是我目前在我的索引方法中所做的工作

    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到该城市,它应该显示没有找到结果。

laravel laravel-5.8
1个回答
0
投票

你得到的错误是因为用户搜索了一些不存在的东西。你可以像这样修复它。

  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. 这将处理请求,这样用户就不会在每次试图寻找东西时被重定向

© www.soinside.com 2019 - 2024. All rights reserved.