Laravel验证如何在没有try catch的情况下将Exception作为Json返回Exception?

时间:2019-05-22 16:31:07

标签: php laravel exception

当派发被确定为重要的错误时,我正在将异常日志添加到我的Laravel应用中以发送邮件或电报消息。 实际上,我在每个控制器函数上都使用了一个“ 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();

1 个答案:

答案 0 :(得分:0)

您可以创建验证器

<?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()) {

        }
    }
}