Yii Framework2.0开发教程(2)使用表单Form

原创 2014年10月25日 17:08:18

第一步、接着教程(1),我们在controllers/ZhyoulunController.php中添加两处,

1)

use app\models\EntryForm;

2)

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]);
		}
	}

文件内容如下所示:

<?php
namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;

//注意这一行,和models/entryform.php对应
use app\models\EntryForm;


//类名ZhyoulunController必须和文件名对应
class ZhyoulunController extends Controller
{
	public function actionHelloworld()
	{
		return $this->renderPartial('helloworld');
		//return $this->render('helloworld');
	}
	
	/*
	该操作首先创建了一个 EntryForm 对象。
	然后尝试从 $_POST 搜集用户提交的数据,
	并确保用户提交的是有效数据。
	*/
	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]);
		}
	}
}


第二步、在models文件夹中新建EntryForm.php

<?php
 
namespace app\models;
 
use yii\base\Model;
 
class EntryForm extends Model
{
    public $name;
    public $email;
 
    public function rules()
    {
				//name 和 email 值都是必须的
				//mail 的值必须满足 email 地址验证
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
        ];
    }
}

第三步、在views/zhyoulun文件夹中新建entry.php和entry-confirm.php,作为显示效果和提交结果

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(); ?>


entry-confirm.php

<?php
use yii\helpers\Html;
?>
<p>你输入的信息如下所示:</p>
 
<ul>
    <li><label>Name</label>: <?= Html::encode($model->name) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>

第四步、访问网址http://localhost/basic/web/index.php?r=zhyoulun/entry



输入信息



提交


参考:http://www.yiichina.com/guide/2/start-forms


转载请注明出处:http://blog.csdn.net/zhyoulun/article/details/40454181

版权声明:本文为博主原创文章,未经博主允许不得转载。

Yii2创建表单(ActiveForm)

由于表单涉及到一些验证方面的信息,属性设置又比较多、比较复杂,所以哪里有什么不正确的地方请留言指点 目录 表单的生成表单中的方法 ActiveForm::begin()方法ActiveForm:...

关于YII生成表单

视图文件: create.php: /* @var $this TagController */ /* @var $model Tag */ $this->breadcrumbs=...
  • anlukun
  • anlukun
  • 2013年04月14日 17:24
  • 4687

Yii2 定制表单输入字段的标签和样式

Yii2中对于表单和字段的支持组件为ActiveForm和ActiveField,要生成一个具有label、input、error提示这样通用格式的登录框,可编写如下代码: ...
  • iefreer
  • iefreer
  • 2015年01月12日 22:16
  • 40467

yii2 常用ActiveForm表单样式用法总结

表单整体输出样式

Yii2 Activefrom表单部分组件

文本框:textInput(); 密码框:passwordInput(); 单选框:radio(),radioList(); 复选框:checkbox(),checkboxList(); 下拉框:dr...

YII2.0使用ActiveForm表单

Controller控制器层代码

Yii2.0表单提交与后台接收

一、表单提交格式 Yii2.0表单提交具有防csrf措施,所以提交表单时需要拥有格外的字段 *post提交 request->csrfToken?>"> *get提交 二、后...

yii 使用cactiveform 创建表单时候遇到的一些验证问题和使用ajax_form时重置验证规则的解决办法

yii  cactiveform 在添加验证信息的时候, 有时候稍有不慎,可能导致客户端验证不起作用,尤其是像我这种初学者来说,更是无解了, 好在今天有点时间, 一路追查这个问题,最后从js 端一直追...

Yii Framework2.0开发教程(3)数据库mysql入门

Yii Framework开发教程(3)数据库mysql入门

Yii Framework2.0开发教程(6)数据库mysql--ActiveRecord

Active Record(活动记录,以下简称AR)提供了一个面向对象的接口,用以访问数据库中的数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Yii Framework2.0开发教程(2)使用表单Form
举报原因:
原因补充:

(最多只允许输入30个字)