laravel框架中自定义验证规则只能是汉字、字母和数字流程步骤
laravel自定义验证规则只能是汉字、字母和数字代码示例
创建自定义验证
php artisan make:rule Yzzhalphanumeric
自定义验证内容
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class Yzzhalphanumeric implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
if(is_object($value)&&get_class($value)=='Illuminate\Http\UploadedFile'){
$value=str_replace(['.',$value->guessClientExtension()],'',$value->getClientOriginalName());
}
return preg_match('/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u', $value);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return '只能是汉字、字母和数字组成,不能包含空格和特殊字符串';
}
}
调用使用
use App\Rules\Yzzhalphanumeric;
$request->validate([
'name' => ['required', 'string', new Yzzhalphanumeric],
]);
总结
虽然laravel生态有很多成熟的规则验证包,但是那是针对大项目,或者公司规定的可以用,
小项目或者一下私人项目等等,自己不想因为一个功能就composer进来一个包的,
就可以用这种方式方案
相关文章