美文网首页
Yii2 Form 的使用小总结 带 length 和 手机号正

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

作者: 蜗牛MVP | 来源:发表于2016-09-30 14:38 被阅读458次

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

第一步:创建一个 基于 Model 的 EnteryForm;
<?php
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

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>

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

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

<div class="form-group">
    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
</div>

<?php ActiveForm::end(); ?>

模板:entry-post.php

<?php
use yii\helpers\Html;
?>
<p>您输入的值为:</p>

<ul>
<li><label>Name</label>: <?= Html::encode($model->name) ?></li>
<li><label>Phone</label>: <?= Html::encode($model->phone) ?></li>
</ul>

看执行结果:

//验证结果


Paste_Image.png

//提交结果


Paste_Image.png

相关文章

网友评论

      本文标题:Yii2 Form 的使用小总结 带 length 和 手机号正

      本文链接:https://www.haomeiwen.com/subject/sxalyttx.html