【问题标题】:How does Laravel validation return Exception as Json without try catch?Laravel 验证如何在没有 try catch 的情况下将 Exception 作为 Json 返回?
【发布时间】:2019-10-09 05:01:33
【问题描述】:

我在我的 Laravel 应用程序中构建了一个异常日志,以便在发送一个被识别为重要的错误时发送邮件或 Telegram 消息。 实际上,我在我的每个控制器函数上都使用了一个“try catch”块来捕获由我的应用程序的任何部分引起的异常。 我的问题是,Laravel 验证如何在不使用 return 句子或 try catch 块的情况下将异常作为 JSON 响应返回?

我现在必须对控制器做什么:

someAction();

try {
    Model::someFunction($params);
catch (MyCustomException $e)
    return json()->response($e->getMessage(), 500); // Return json error if fails
}

return anotherAction();

我想对控制器做什么:

someAction();

Model::someFunction($params); // Return json error if fails and stop execution

return anotherAction();

Laravel 验证的作用:

someAction();

$request->validate($validationRules); // Return json error if validation fails and stop execution

return anotherAction();

【问题讨论】:

    标签: php laravel exception


    【解决方案1】:

    你可以做一个验证器

    <?php
    
    use Validator;
    use Illuminate\Http\Request;
    
    class MyController extends Controller {
    
        public function myFunction(Request $request)
        {
            $validator = Validator::make($request->all(), [
                'foo' => 'required',
                'bar' => 'required'
            ]);
    
            if ($validator->passes()) {
    
            }
    
            if ($validator->fails()) {
    
            }
        }
    }
    

    【讨论】:

    • 抱歉,我不是在问如何验证。我在问验证失败时 laravel 验证如何工作,它如何返回 json 响应并停止执行,因为我想在我的代码中实现相同的功能
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2016-08-18
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多