Yii2 Form 的使用小总结 带 length 和 手机号正则

本文讲下Yii2 Form使用的例子,一个用户提交数据的表单页面,包含 name 和 phone 输入框,提交信息以后,会显示 name 和 phone 的值:

第一步:创建一个 基于 Model 的 EnteryForm;
namespace frontend\models;
use Yii;
use yii\base\Model;

class EntryForm extends Model
{

public $name;
public $phone;

public function rules()
{
    return [
        //[['name','phone'],'required','message'=>'必填项不能为空!'],
        ['name','required','message'=>'name不能为空!'],
        ['name','string','length'=>[6,12],'tooLong'=>'name最多为12个字符','tooShort'=>'name至少为6个字符'],
        ['phone','required','message'=>'phone不能为空!'],
        ['phone','match','pattern' => '/^1[34578]\d{9}$/','message'=>'手机号格式不正确!'],
    ];
}

}

//name 为6-12位字符,位数不够会有相应的提示;phone为11位的手机号,有个简单的正则来验证

第二步:创建控制器和模板;
//测试 Form 的使用,里面用到了两个模板,entry.php 和 entry-post.php
public function actionEntry()
{
$model = new EntryForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
return $this->render('entry-post', ['model' => $model]);
} else {
return $this->render('entry', ['model' => $model]);
}
}

模板:entry.php

use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>

field($model, 'name')->label('用户名') ?>

field($model, 'phone')->label('手机号') ?>

'btn btn-primary']) ?>

模板:entry-post.php

use yii\helpers\Html;
?>

您输入的值为:


  • : name) ?>

  • : phone) ?>

看执行结果:

//验证结果


Yii2 Form 的使用小总结 带 length 和 手机号正则_第1张图片
Paste_Image.png

//提交结果


Yii2 Form 的使用小总结 带 length 和 手机号正则_第2张图片
Paste_Image.png

你可能感兴趣的:(Yii2 Form 的使用小总结 带 length 和 手机号正则)