首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel利用ValidationException

Laravel利用ValidationException
EN

Stack Overflow用户
提问于 2017-07-06 18:34:20
回答 1查看 1.1K关注 0票数 1

我在用..。

代码语言:javascript
复制
$validator  = Validator::make(...) 

...to验证我的输入。但是,出于API的目的,我想使用Laravel的Validation Exception类,而不是使用该方法。

目前,我正在尝试:

代码语言:javascript
复制
// Model (Not Eloquent Model)
Validator::make(...) 

// Controller
try { $model->createUser(Request $request); }
catch(ValidationException $ex)
{
    return response()->json(['errors'=>$ex->errors()], 422);
}

但是,模型中的验证似乎不会引发任何验证异常。我仍然可以通过使用$validator->errors()获得错误。然而,这仍然违背了我的目的。

我试图通过只使用try和catch语句来保持控制器的整洁;因此,将所有的逻辑和控制器排除在外。

我如何利用ValidationException来做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2017-07-07 02:23:48

我不知道您的$model->createUser(Request $request);中发生了什么,但是如果您使用Validator外观,那么您必须自己处理验证,如下所示:

代码语言:javascript
复制
use Validator;

...

$validator = Validator::make($input, $rules);

if ($validator->fails()) {
    // With a "Accept: application/json" header, this will format the errors
    // for you as the JSON response you have right now in your catch statement
    $this->throwValidationException($request, $validator);
}

另一方面,您可能希望在控制器中使用validate()方法,因为它为您完成了上述所有操作:

代码语言:javascript
复制
$this->validate($request, $rules);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44946516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档