?Laravel 驗證中文,手機號,身份號
github.com/liaoshengping/laravel-v...
使用
$data = ['name' => '小廖one'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlpha']);
標識 | 說明 |
---|---|
chs | 驗證某個欄位的值只能是漢字 |
chsAlpha | 驗證某個欄位的值只能是漢字、字母 |
chsAlphaNum | 驗證某個欄位的值只能是漢字、字母和數字 |
chsDash | 驗證某個欄位的值只能是漢字、字母、數字和下劃線_及破折號- |
mobile | 驗證手機 |
idCard | 身份證 |
先安裝 超哥的 package-builder
切換到一個laravel 目錄下建立 pkg cd pkg
執行:
package-builder build laravel-validate-ext
輸出內容如下
進入 src 建立 LaravelValidateExtProvider.php
,內容如下
<?php
namespace Liaosp\LaravelValidateExt;
use Illuminate\Support\ServiceProvider;
class LaravelValidateExtProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//todo 這邊寫邏輯
die('helloworld');
}
}
進入包 composer.json編輯
新增擴充套件:
"extra": {
"laravel": {
"providers": [
"Liaosp\\LaravelValidateExt\\LaravelValidateExtProvider"
]
}
},
現在需要把這個提供類,新增到你的laravel專案中,透過composer 的方式匯入
在laravel 專案中 composer.json 中新增
"repositories": [
{
"type": "path",
"url": "pkg\\laravel-validate-ext"
}
]
執行:
composer require liaosp/laravel-validate-ext dev-master
如果這步有啥報錯,比如命名之類的錯誤了,需要把他移除掉composer remove
再安裝
如何測試 我這個包是否已經匯入到laravel 框架了呢?我們在剛剛提供類中斷電一下
public function boot()
{
die('helloworld');
}
因為laravel 載入的時候都先執行boot 初始化
php artisan test
可以看到 'helloworld'
到這邊,你就掌握了laravel composer 包的開發了,具體實現我已經上傳到了github 有興趣的可以看一下。
github.com/liaoshengping/laravel-v...
$v = Validator::make($request->all(), [
'name' => "idCard"
]);
if ($v->fails()) {
return $v->errors()->first();
}
輸出是沒有問題的,到這就完成了。
那一般來說這樣就已經可以了,但是一個合格的包,還需要編寫測試
新建測試檔案:
pkg\laravel-validate-ext\tests\ValidateTest.php
寫入剛剛寫好的測試擴充套件,比如:
/**
* 驗證某個欄位的值只能是漢字、字母和數字
*/
public function testChsAlphaNum()
{
$data = ['name' => '小L'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlphaNum']);
$this->assertTrue(!$v->fails());
$data = ['name' => '小L.'];
$v = \Illuminate\Support\Facades\Validator::make($data, ['name' => 'chsAlphaNum']);
$this->assertFalse(!$v->fails());
}
具體的測試上傳到了github.com/liaoshengping/laravel-v...
Laravel 執行測試
php artisan test pkg/laravel-validate-ext
可以看到剛剛寫的測試都已經透過,說明大機率是沒問題了,下面就上傳到packagist 可以供其他小夥伴使用了。
同學們一般Pr 的時候最好也寫測試檔案,這樣作者就可以執行,沒有問題再合併
我們打一個標籤
在github 建立倉庫: laravel-validate-ext 把剛剛的包傳到這邊倉庫
git tag v1.0.0
git push origin --tags
登入 packagist.org/
把github 地址 輸進去提交,就完成了
packagist.org/packages/liaosp/lara...
本作品採用《CC 協議》,轉載必須註明作者和本文連結