当我按我的数据库表中可用的城市名称搜索时,它将显示结果,但当我按我的数据库表中不可用的未知城市搜索时,它显示-模型[App \城市]。我正在与您分享代码和屏幕截图see error screenshot 实际上,如果我的数据库表中找不到城市,我想重定向到401页
这是我的路线
Route :: get('teacher-jobs-by-city / {city}','TeacherJobsController @ by_location');
这是我的职能
公共函数by_location($ location_id ='') {
$data= array();
$location = City::where('slug',$location_id)->where('status','1')->firstOrFail();
$items= Subject::orderBy('id','asc')->get();
$data['location']=$location;
//$subjects = [''=>'Select Subject'] + Subject::lists('subject_title','id')->toArray();
//$city = [''=>'Select City'] + City::lists('name','id')->toArray();
$active_class ='Select Subject to see job Openings';
return view('frontend.teacherjobs.by_location',compact('active_class','data','items'));
}
答案 0 :(得分:1)
这是因为您使用的firstOrFail()
方法(如果命名方法失败)将抛出Exception(异常)消息,如果没有结果,该方法将失败,该消息将重新显示为“ No query results for model ...”消息。
如果您希望它不会失败,则可以:
firstOrFail()
方法替换为first()
答案 1 :(得分:1)
您可以通过修改EIGEN=/usr/include/eigen3
cd ./bin
for file in ../src/*cpp; do
g++ -std=c++11 -fPIC -c -I$EIGEN -I../include -O3 $file "-lstdc++fs"
done
ar crv libfoo.a *.o
cd ..
处理异常的方式来处理此类错误。在Illuminate\Database\Eloquent\ModelNotFoundException
类中,将render方法更改为如下
App\Exceptions\Handler
在重定向中,您必须放置要重定向到的路由,我放置public function render($request, Exception $exception)
{
if($exception instanceof ModelNotFoundException){
return redirect("/error_page", 401)->with('error', $e->getMessage());
}
return parent::render($request, $exception);
}
只是出于示例目的。
您可以在Error Handling'
别忘了像这样/error_page
答案 2 :(得分:0)
替换此:
$location = City::where('slug',$location_id)->where('status','1')->first();
与此:
pip install -U pyperclip
答案 3 :(得分:0)
加上Elias Soares的答案,这是因为laravel如果firstOrFail不返回结果,则会生成“ Illuminate \ Database \ Eloquent \ ModelNotFoundException”异常。
由您决定如何处理此异常。如果使用firstOrFail->至first()解决方案
将firstOrFail替换为first之后,您将得到错误:“试图获取非对象的属性”,这是因为您的查询未获取任何内容,因此没有属性。为此,您可以检查查询结果。
$location = City::where('slug',$location_id)->where('status','1')->first();
!empty($location->attribute)?$location->attribute:null;