许多控制器中的重复404代码:Laravel 5.2

时间:2016-03-20 19:24:00

标签: php laravel-5 laravel-5.2

我有以下代码。

private function GetCountry($CountryID) {
    $Country = \App\Models\CountryModel
                ::where('CountryID', $CountryID)
                ->where('IsPredefined', false)
                ->first();
    if($Country == null) {
        \App::abort(404);
        return;
    }
    return $Country;
}

如果添加了条件以确保用户是否正在尝试查询字符串,其数据库中不存在其关联记录。如果我删除if条件检查,我在Blade中得到以下错误。

  

尝试获取非对象的属性

根据控制器的不同,使用不同的模型定义相同的功能。

问题:我可以减少代码吗?我想保留404错误

1 个答案:

答案 0 :(得分:1)

为什么不使用firstOrFail()来检查你呢

  

如果没有找到结果,将抛出Illuminate \ Database \ Eloquent \ ModelNotFoundException

     

如果未捕获到异常,则会自动将404 HTTP响应发送回用户,因此在使用这些方法时,无需编写显式检查以返回404响应: