gpt4 book ai didi

php - Laravel利用ValidationException

转载 作者:行者123 更新时间:2023-12-03 07:49:28 25 4
gpt4 key购买 nike

我在用...

$validator  = Validator::make(...) 

...以验证我的输入。但是,为了使用API​​,我不想使用该方法,而是要使用Laravel的Validation Exception类。

目前,我正在尝试:
// 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语句来保持真正干净的 Controller 。因此,应将所有逻辑保持在 Controller 之外。

如何利用 ValidationException做到这一点?

最佳答案

我不知道$model->createUser(Request $request);中会发生什么,但是如果您使用Validator门面,那么您必须自己进行验证,如下所示:

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);
}

另一方面,您可能想在 Controller 中使用 validate()方法,因为它可以为您完成以上所有操作:
$this->validate($request, $rules);

关于php - Laravel利用ValidationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com