1、使用框架自帶驗(yàn)證規(guī)則驗(yàn)證
public function rules()
{
return [
[['fromType', 'mobile',], 'required'],
['companyName', 'string', 'max' => 64],
[['contacts','cityName'], 'string', 'max' => 16],
['mobile', 'isMobile',],
];
}
2奖蔓、自定義方法驗(yàn)證 : 針對(duì)性強(qiáng),復(fù)用性低讹堤。
public function rules()
{
return [
['mobile', 'isMobile',],
];
}
public function isMobile($attribute, $params, $validator)
{
$len = mb_strlen($this->mobile,'UTF-8');
if ($len<7 || $len>15) {
$this->addError($attribute, '電話號(hào)碼格式錯(cuò)誤');
}
}
3吆鹤、框架自帶驗(yàn)證規(guī)則中增加自定義驗(yàn)證類 :復(fù)用性高,但是需要調(diào)整框架文件洲守。
自定義驗(yàn)證類(vendor\yiisoft\yii2\validators\MobileValidator.php)
<?php
namespace yii\validators;
use Yii;
use yii\helpers\Json;
use yii\helpers\StringHelper;
use yii\web\JsExpression;
class MobileValidator extends Validator
{
public $pattern = "/^1[3456789]{1}[0-9]{9}$/";
/**
* {@inheritdoc}
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii', '手機(jī)號(hào)格式錯(cuò)誤');
}
}
/**
* {@inheritdoc}
*/
protected function validateValue($value)
{
if (!preg_match($this->pattern, trim($value))) {
return [$this->message, []];
}
return null;
}
}
驗(yàn)證規(guī)則中調(diào)用自定義類(vendor\yiisoft\yii2\validators\Validator.php)
public static $builtInValidators = [
'boolean' => 'yii\validators\BooleanValidator',
....
'mobile' => 'yii\validators\MobileValidator',
];
表單中調(diào)用新增的驗(yàn)證規(guī)則
public function rules()
{
return [
['mobile', 'mobile',],
];
}