onemoreblock / laravel-validatorjs
基于validatorjs API的Laravel前端表单验证库
dev-master
2021-10-17 09:40 UTC
Requires
- php: ^7.1|^8
This package is auto-updated.
Last update: 2024-09-17 16:26:39 UTC
README
此包创建的目的是通过为Laravel和前端都编写一组规则来处理前端表单验证
此库生成表单的前端验证规则并显示相应的错误信息,这一切都是通过定义您的Laravel表单请求来完成的,它还支持Laravel的自定义属性名称和错误消息自定义
** 此库还不够完美,目前不能满足所有用例,但仍然可以满足大多数需求 **
待办事项
- 生成既支持Laravel又支持Validatorjs的验证规则
- 添加对** Tailwind CSS**错误的** 支持**(目前仅支持Bootstrap 5的自动错误显示)
- 添加对添加**自定义验证规则**的支持
快速安装
$ composer require onemoreblock/laravel-validatorjs
要求
配置
$ php artisan vendor:publish --provider="OneMoreBlock\Validatorjs\ValidatorJsServiceProvider"
用法
目前此包仅支持通过使用Laravel表单请求生成validatorjs规则。因此,首先创建一个Laravel表单请求,例如:PostRequest
$ php artisan make:request PostRequest
现在打开生成的PostRequest文件,并确保执行以下操作
- 将默认扩展类从 FormRequest 替换为 Validatorjs
- 添加一个 protected 变量 **$tableID **(应用验证的表ID)
- 添加一个 protected 变量 **$successCallback **(在成功验证时要调用的函数名称)
- 现在定义您的验证规则,就像之前一样 😃 这里是PostRequest的示例
<?php namespace App\Http\Requests; use OneMoreBlock\Validatorjs\Validatorjs; class PostRequest extends Validatorjs { protected $tableID = 'entries'; protected $successCallback = 'successCallback'; /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'f_name' => 'required|min:20|max:30', 'l_name' => 'required|min:20|max:30', 'email' => 'required|email', ]; } /** * Get custom attributes for validator errors. * * @return array */ public function attributes() { return [ 'f_name' => 'First name', 'l_name' => 'Last Name', ]; } /** * Get the error messages for the defined validation rules. * * @return array */ public function messages() { return [ 'f_name.required' => 'A :attribute is required', 'l_name.required' => 'A :attribute is required', ]; } }
现在以以下方式定义您的控制器
<?php namespace App\Http\Controllers; use App\Http\Requests\PostRequest; class PostController extends Controller { public function index() { return (new PostRequest)->render('validatorjs.index'); // blade file } }
更新视图blade文件以包含以下内容
- 为表单分配一个ID
- 导入所有必需的js脚本
- 导入/定义与之前定义的相同的成功回调函数名称
视图文件示例
<form method="post" id="{{ $table_id }}"> @csrf <div class="col-md-4"> <label for="validationCustom01" class="form-label">First name</label> <input type="text" class="form-control" id="validationCustom01" name="f_name" value="Mark"> </div> <div class="col-md-4"> <label for="validationCustom02" class="form-label">Last name</label> <input type="text" class="form-control" id="validationCustom02" name="l_name" value="Otto" > </div> <div class="col-md-4"> <label for="validationCustom02" class="form-label">Email</label> <input type="email" class="form-control" id="validationCustom02" name="email" > </div> <input type="submit" value="Sumit" class="btn btn-sm btn-primary"> </form> {!! $scripts !!} <script type="text/javascript"> function successCallback(data) { // same name as $successCallback defined in the PostRequest // Stuff to do after the validation is passed } </script>
许可证
Laravel-Validatorjs是开源软件,根据MIT许可证授权。