- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 app\Http\Requests
中创建了一个自定义验证类:
<?php
namespace App\Http\Requests;
use App\Http\Requests\BaseFormRequest;
class RegisterUserRequest extends BaseFormRequest
{
protected static $NEEDS_AUTHORIZATION = false;
protected static $FORM_RULES = [
'first_name' => 'required|string|max:80',
'last_name' => 'required|string|max:80',
'email' => 'required|unique:users|email',
'password' => 'required|string|min:6|confirmed',
'terms_conditions' => 'accepted'
];
}
并在同一目录中扩展 BaseFormRequest
:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
use Illuminate\Validation\ValidationException;
use Illuminate\Http\Exceptions\HttpResponseException;
//use Illuminate\Http\Request;
abstract class BaseFormRequest extends FormRequest
{
protected static $NEEDS_AUTHORIZATION = true;
protected static $FORM_RULES = [];
protected static $ERROR_MESSAGES = [];
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() : bool
{
return !static::$NEEDS_AUTHORIZATION;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules() : array
{
return static::$FORM_RULES;
}
/**
* Get the error messages for the defined validation rules.
*
* @return array
*/
public function messages()
{
return static::$ERROR_MESSAGES;
}
/**
* @overrride
* Handle a failed validation attempt.
*
* @param \Illuminate\Contracts\Validation\Validator $validator
* @return void
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function failedValidation(Validator $validator) : void
{
//throw (new ValidationException(response()->json($validator->errors(), 422)));
throw new HttpResponseException(response()->json($validator->errors(), 422));
}
}
现在,当尝试在我的 Controller 中使用它时:
<?php
namespace App\Http\Controllers\API;
use App\Services\UserService;
use Illuminate\Http\JsonResponse as JsonResponse;
//use Iluminate\Http\Request;
use App\Http\Requests\RegisterUserRequest;
class UserController extends Controller
{
private $user;
public function __construct(UserService $user)
{
$this->user = $user;
}
public function store(RegisterUserRequest $request) : JsonResponse
{
$registered_user = $this->user->register($request->validated());
return response()->json(['status' => 201, 'user_id' => $registered_user->id]);
}
}
我收到以下错误:
ReflectionException Class App\Http\Requests\RegisterUserRequest does not exist
有趣的是,如果我删除覆盖的方法 failedValidation
错误就消失了,尽管它会将我重定向到主页,这是我试图避免的。我想始终返回一个 json 响应。
有什么建议吗?谢谢
最佳答案
请注意,failedValidation()
函数需要一个 \Illuminate\Contracts\Validation\Validator
的实例作为参数:
/**
* ...
* @param \Illuminate\Contracts\Validation\Validator $validator
* ...
*/
但是你正在传递一个 Illuminate\Validation\Validator
实例:
use Illuminate\Validation\Validator;
protected function failedValidation(Validator $validator) : void
{
throw new HttpResponseException(response()->json($validator->errors(), 422));
}
所以,你可以改变
use Illuminate\Validation\Validator;
到
use Illuminate\Contracts\Validation\Validator;
或者通过参数中的命名空间传递它:
protected function failedValidation(\Illuminate\Contracts\Validation\Validator $validator) : void
{
throw new HttpResponseException(response()->json($validator->errors(), 422));
}
关于php - 覆盖 FormRequest 的 failedValidation 方法时,Laravel 6 自定义验证错误 'class does not exist',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58367829/
不确定我是否有 Scrapy 或 Twisted 或 ???通过 easy_install 运行 Python 2.7 32 位和最新的 scrapy/依赖项 尝试模拟 POST 请求登录并使其正常工
在我的 Controller 中,我在验证之前有条件语句 if ($request->department == 5) { $this->validate($request, [ //
我是 Laravel 新手。 我想知道如何验证具有相同名称的多个输入。 我有一个 POST 请求的验证规则,但是虽然我有所有需要的值,但验证失败。 我注意到键名与用户输入的键名不同,所以我认为这是导致
我有一个如下所示的 FormRequest 类 'image|mimes:jpg,png,jpeg,|max:2048', ]; } } 如何在此处获取验证消息?就像
我正在抓取的网站有时会重定向到带有我想在下载器中间件中处理的表单的页面。这个想法是每次发生这种重定向时,它都会自动提交表单并检索结果。我的中间件看起来像: from scrapy import For
我尝试使用 FormRequest: class RegistrationForm extends FormRequest { public function authorize()
我有一个带有两个功能的 User 模型来检查用户的性别。对于特定的表单,我创建了一个 FormRequest目的。现在,我需要设置一些特定于用户性别的验证规则,即对于男性用户有一组规则,对于女性用户有
我正在尝试弄清楚如何在使用验证槽请求时将错误消息添加到由 Illuminate\Support\MessageBag 生成的默认 $error 中。 我在 google 和 laravel 文档上进行
我正在用 scrapy 编写一个网络爬虫来处理表单。问题是我遇到了一个包含大量同名输入的表单。标签如下: 唯一区分它们的是 ID 属性。我想用一些数字填充 ID='crn_id1' 的人。然而,
我正在使用 Scrapy 编写一个 python 脚本来抓取具有登录页面的网站。我正在尝试使用 Scrapy 中的 FormRequest.from_response 填写表单,但没有成功,不知道为什
我正在尝试学习 scrapy FormRequest 如何在网站上工作,我有以下 scrapy 代码: import scrapy import json from scrapy.utils.resp
这里是完整的 Python 新手,所以我可能会问一些非常明显的问题,但我已经搜索过这个网站、Scrapy 文档和 Google,我完全陷入了这个问题。 本质上,我想使用 Scrapy 的 FormRe
我有一个规则 (foobar),它不是 Laravel 内置的,我想在我的扩展 FormRequest 中使用。如何为该特定规则创建自定义验证器? public function rules() {
是否可以在我的函数中创建动态 FormRequest 验证?请参阅下面的示例代码。 public function store(Request $request) { Model::creat
我正在抓取此网页 https://researchgrant.gov.sg/eservices/advanced-search/?keyword=&source=sharepoint&type=pro
我正在尝试从“https://pagesjaunes.fr ”中抓取数据。我为了从pagesjaunes中抓取数据:电子邮件、地址等我首先要在 中提交数据 当我在网络 chrome 调试器中搜索以查看
我正在尝试学习Scrapy。我尝试在 Scrapy 中复制以下发布请求,但没有成功。我也尝试了 scrapy.Request(method='POST') 但它也不起作用。 import reques
我目前正在研究 FormRequest 对象,以使用它对传入数据执行身份验证和验证。但是,在使用模型注入(inject)时我无法让它工作。 路由.php: Route::model('post', '
我正在尝试抓取以下网站,其中分页是通过 AJAX 请求进行的。 http://studiegids.uva.nl/xmlpages/page/2014-2015/zoek-vak 我正在发送 Form
我正在尝试解析 this使用 Scrapy 的页面为了显示带有价格的隐藏文本,我在字段中输入了任何邮政编码或随机数字: 对于带有价格的响应 url,我尝试使用 yse FormRequest.fro
我是一名优秀的程序员,十分优秀!