yii2.0 控制器方法 视图表单 Form表单处理

假设我们在ArticleController.php下面的actionForm方法中来处理提交的表单

 

新建立一个 views/Article/article-form.php文件用来作为输入表单

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

    <?= $form->field($model, 'title') ?>

    <?= $form->field($model, 'content') ?>

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

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

 

新建立一个 views/Article/article-confirm.php文件用来显示表单处理成功后的结果

<?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>

<ul>
    <li><label>Name</label>: <?= Html::encode($model->title) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->content) ?></li>
</ul>

 

需求:提交过来的数据需要验证--title、content不能为空

新建models/ArticleForm.php

<?php

namespace app\models;

use yii\base\Model;

class ArticleForm extends Model
{
    public $title;
    public $content;

    public function rules()
    {
        return [
            [['title', 'content'], 'required'],
            //['email', 'email'],
        ];
    }
}

 

最后在ArticleController.php中完成actionForm方法

public function actionForm()
    {
        $model = new ArticleForm;
        if ($model->load(Yii::$app->request->post()) && $model->validate())
        {
            // 验证 $model 收到的数据
            // 做些有意义的事 ...
            return $this->render('article-confirm', ['model' => $model]);
        }
        else
        {
            // 无论是初始化显示还是数据验证错误
            return $this->render('article-form', ['model' => $model]);
        }

 

访问http://www.basic.com/index.php?r=article/form即可测试

posted @ 2015-12-29 16:25  九分  阅读(752)  评论(0编辑  收藏  举报