- 驗證器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 協議》,轉載必須註明作者和本文連結