songyz_validator上线,扩展validator这么香么,可以早下班和女盆友一起撸猫咯(一)
为什么会有这个包包
- 验证器Request中,可以编写多个验证规则
- 验证与业务代码分离、代码更加清晰
- 增加多种常用的验证规则 如 手机号验证、身份证验证
- 增强、优化扩展规则,通过配置文件即可实现多种规则
- 减少代码编写,提高代码复用 释放劳动力
一、安装
安装 songyz/laravel_validator
的两种方式:
1、修改composer.json
打开composer.json
在require中添加以下代码:
"songyz/laravel_validator": "0.*"
执行 composer update
完成包加载。
2、composer require 方式
composer require songyz/laravel_validator
完成包加载。
请根据自己喜好,采用不同的方式进行安装。
我个人喜欢第二种
方式
[danger]看下Laravel和Lumen怎么配置:
二、Laravel配置
1、修改 config/app.php
在providers中添加以下代码:
Songyz\Providers\ValidationServiceProvider::class,
Songyz\Providers\ValidatorConfigProvider::class,
2、发布配置文件
php artisan vendor:publish --provider="Songyz\Providers\ValidatorConfigProvider"
发布完成后,会在config
目录下创建songyz_validator.php
文件。
配置文件songyz_validator.php
详解请参照 配置文件
Lumen配置
1、打开bootstrap/app.php
添加以下服务提供
$app->register(Songyz\Providers\ValidationServiceProvider::class);
$app->register(Songyz\Providers\ValidatorConfigProvider::class);
$app->register(Songyz\Providers\LumenFoundationServiceProvider::class);
//将以下代码取消注释
$app->register(App\Providers\AppServiceProvider::class);
$app->withFacades();
$app->withEloquent();
2、发布配置文件
由于Lumen中未提供发布功能,请到 vendor/songyz/laravel_validator/src/config
目录下 复制 songyz_validator.php
放在项目根目录 config/
下。
倘若没有修改的需求,则可忽略此步骤
3、在bootstrap/app.php
中将配置文件添加进来
$app->configure('songyz_validator');
至此项目配置完成。
三、项目初体验
1、首先创建控制器
GoodsController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests\GoodsRequest;
class GoodsController extends Controller
{
public function add()
{
}
/**
* 获取一个商品信息
* 验证规则 id 不能为空 且 必须是数字
* getOne
* @param GoodsRequest $request
*
*/
public function getOne(GoodsRequest $request)
{
print_r($request->all());
echo "通过验证";
}
}
2、创建验证器类
创建验证器类文件,放在什么位置?有要求吗?
是没有要求的,放在 app
目录下即可。
例如:app/Controllers/Requests
app/Validator
文档中将验证器类放在 app/Controllers/Requests
文件夹下面。
<?php
namespace App\Http\Requests;
use Songyz\Validator\Lumen\FormRequest;
/**
* 数据验证器
* Class GoodsRequest
* @package App\Http\Requests
* @date 2020-06-12 22:45:18
*/
class GoodsRequest extends FormRequest
{
protected $getOne = [
'rules' => [
'id' => 'required|integer'
],
'messages' => [
'id.required' => 'id不能为空',
'id.integer' => 'id必须是数字',
]
];
}
[danger] 重要的事说三遍 验证器类中方法与控制器方法必须保持一致。
[danger] 重要的事说三遍 验证器类中方法与控制器方法必须保持一致。
[danger] 重要的事说三遍 验证器类中方法与控制器方法必须保持一致。
有图有真相
没有传递 id 的提示
id传递 abc
id 传递 1
四、使用脚本创建控制器类
第一种
使用命令以下命令创建验证类
php artisan songyz:make:request
E:\phpStudy\WWW\lumen>php artisan songyz:make:request
请输入验证器类名,支持模块化定义(Goods/Nav) 或者直接写 Nav::
> Goods
E:\phpStudy\WWW\lumen/app\Http\Requests\GoodsRequest.php 文件创建成功229
第二种
使用命令创建Goods验证类
php artisan songyz:make:request --request_name=Goods
E:\phpStudy\WWW\lumen>php artisan songyz:make:request --request_name=Goods
E:\phpStudy\WWW\lumen/app\Http\Requests\GoodsRequest.php 文件创建成功229
参数 –force
当验证文件存在,直接覆盖,不做任何提醒。
默认情况下,文件存在,会提示用户是否覆盖。
E:\phpStudy\WWW\lumen>php artisan songyz:make:request --request_name=Goods
E:\phpStudy\WWW\lumen/app\Http\Requests\GoodsRequest.php 文件已存在,是否替换 (yes/no) [no]:
> yes # 当文件存在,提示用户是否覆盖
E:\phpStudy\WWW\lumen/app\Http\Requests\GoodsRequest.php 文件创建成功229
带有 –force
E:\phpStudy\WWW\lumen>php artisan songyz:make:request --request_name=Goods --force
E:\phpStudy\WWW\lumen/app\Http\Requests\GoodsRequest.php 文件创建成功229
更多内容请移步 validator验证-全文档
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: