rav*_*avi 6 laravel laravel-5 laravel-5.1 laravel-5.2
当我按数据库表中可用的城市名称搜索时,它会显示结果,但是当我按数据库表中不可用的未知城市搜索时,它会显示 -模型 [App\City] 没有查询结果。我正在与您分享代码和屏幕截图查看错误屏幕截图 实际上我想重定向到 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'));
}
Run Code Online (Sandbox Code Playgroud)
那是因为您正在使用该firstOrFail()方法,如果没有结果,则会通过抛出将被重新标记为“模型没有查询结果...”消息的异常而失败。
如果你不想失败,你可以:
firstOrFail()方法替换为first()您可以通过修改Illuminate\Database\Eloquent\ModelNotFoundException处理异常的方式来处理这种错误。在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);
}
Run Code Online (Sandbox Code Playgroud)
在重定向中,您必须放置要重定向到的路由,我/error_page仅用于示例目的。您可以了解有关错误处理的更多信息'
不要忘记像这样导入 ModelNotFoundException use Illuminate\Database\Eloquent\ModelNotFoundException;
| 归档时间: |
|
| 查看次数: |
16566 次 |
| 最近记录: |