旗下导航:搜·么
当前位置:网站首页 > PHP框架 > YII > 正文

yii框架怎样运用表单【yii框架教程】,yii

作者:搜搜PHP网发布时间:2019-11-29分类:YII浏览:53


导读:怎样建立一个让用户提交数据的表单页。该页将显现一个包括name输入框和email输入框的表单。当提交这两部分信息后,页面将会显现用户所输入的信息。(引荐进修:...

怎样建立一个让用户提交数据的表单页。 该页将显现一个包括 name 输入框和 email 输入框的表单。 当提交这两部分信息后,页面将会显现用户所输入的信息。 (引荐进修:yii框架)

为了完成这个目的,除了建立一个操纵和两个视图外, 还需要建立一个模子。

经由过程本教程,你将会学到:

建立一个模子代表用户经由过程表单输入的数据

声明划定规矩去考证输入的数据

在视图中生成一个 HTML 表单

建立模子

模子类 EntryForm 代表从用户那要求的数据, 该类以下所示并存储在 models/EntryForm.php 文件中。

<?php

namespace app\models;

use Yii;
use yii\base\Model;

class EntryForm extends Model
{
    public $name;
    public $email;

    public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
        ];
    }
}

该类继续自Yii 供应的一个基类 yii\base\Model, 该基类一般用来示意数据。

信息: yii\base\Model 被用于一般模子类的父类并与数据表无关。yii\db\ActiveRecord 一般是一般模子类的父类但与数据表有关联(译注:yii\db\ActiveRecord 类实在也是继续自 yii\base\Model,增加了数据库处置惩罚)。

EntryForm 类包括 name 和 email 两个大众成员, 用来贮存用户输入的数据。它还包括一个名为 rules() 的要领, 用来返回数据考证划定规矩的鸠合。上面声明的考证划定规矩示意:

name 和 email 值都是必需的

email 的值必需满足email划定规矩考证

假如你有一个处置惩罚用户提交数据的 EntryForm 对象, 你能够挪用它的 validate() 要领触发数据考证。 假如有数据考证失利,将把 hasErrors 属性设为 ture, 想要晓得细致发作什么毛病就挪用 getErrors。

<?php
$model = new EntryForm();
$model->name = 'Qiang';
$model->email = 'bad';
if ($model->validate()) {
    // 考证胜利!
} else {
    // 失利!
    // 运用 $model->getErrors() 猎取毛病概况
}

建立行动

下面你得在 site 控制器中建立一个 entry 操纵用于新建的模子。

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\EntryForm;

class SiteController extends Controller
{
    // ...现存的代码...

    public function actionEntry()
    {
        $model = new EntryForm;

        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            // 考证 $model 收到的数据

            // 做些有意义的事 ...

            return $this->render('entry-confirm', ['model' => $model]);
        } else {
            // 无论是初始化显现照样数据考证毛病
            return $this->render('entry', ['model' => $model]);
        }
    }
}

该操纵起首建立了一个 EntryForm 对象。然后尝试从 $_POST 汇集用户提交的数据, 由 Yii 的 yii\web\Request::post() 要领担任汇集。 假如模子被胜利添补数据(也就是说用户已提交了 HTML 表单), 操纵将挪用 validate() 去确保用户提交的是有用数据。

信息: 表达式 Yii::$app 代表运用实例,它是一个全局可接见的单例。 同时它也是一个效劳定位器, 能供应 request,response,db 等等特定功用的组件。 在上面的代码里就是运用 request 组件来接见运用实例收到的 $_POST 数据。

用户提交表单后,操纵将会衬着一个名为 entry-confirm 的视图去确认用户输入的数据。 假如没填表单就提交,或数据包括毛病(译者:如 email 花样不对), entry 视图将会衬着输出,连同表单一同输出的另有考证毛病的细致信息。

注重: 在这个简朴例子里我们只是显现了有用数据的确认页面。 实践中你应当斟酌运用 refresh() 或 redirect() 去防止表单反复提交题目。

建立视图 ?

末了建立两个视图文件 entry-confirm 和 entry。 他们会被适才建立的 entry 操纵衬着。

entry-confirm 视图简朴地显现提交的 name 和 email 数据。视图文件应当保存在 views/site/entry-confirm.php。

<?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>
<ul>
    <li><label>Name</label>: <?= Html::encode($model->name) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>

entry 视图显现一个 HTML 表单。视图文件应当保存在 views/site/entry.php。

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, 'name') ?>
    <?= $form->field($model, 'email') ?>
    <div class="form-group">
        <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
    </div>
<?php ActiveForm::end(); ?>

用浏览器接见下面的 URL 看它可否事情:

http://hostname/index.php?r=site/entry

你会看到一个包括两个输入框的表单的页面。每一个输入框的前面都有一个标签指明应当输入的数据类型。 假如什么都不填就点击提交按钮,或填入花样不正确的 email 地点,将会看到在对应的输入框下显现毛病信息。

输入有用的 name 和 email 信息并提交后, 将会看到一个显现你所提交数据的确认页面。

以上就是yii框架怎样运用表单的细致内容,更多请关注ki4网别的相干文章!

标签:yii