YII学习之表单提交

DATE: 2015-08-31 / VIEWS: 1103

模型 [EntryForm.php]:

<?php
namespace app\models;

use yii\baseModel;
class EntryForm EXTENDS Model{

    public $name;
    public $email;

    public function rules()
    {
        return [
            [['name','email'],'required','message'=>'请填写!'],
            ['email','email','message'=>'邮箱格式不正确!']
        ];
    }

}
控制器 [IndexController.php]:
<?php
namespace app\controllers;

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

class IndexController extends controller
{

    public function actionEntry()
    {
        //关闭页面布局
        $this->layout = false;
        //创建表单模型
        $entry = new EntryForm();
        //如果是Post请求提交
        if(Yii::$app->request->getIsPost()){
            //获取表单数据给变量post
            $post = Yii::$app->request->post();
            //表单模型设置属性为post
            $entry->setAttributes($post);
            //表单模型数据验证
            if ($entry->validate()) {
                //正确
                var_dump($post);
            } else {
                //返回错误提示
                var_dump($entry->getErrors());
            }
        }else{
            //如果不是Post请求,正常显示模板
            return $this->render('entry',['model'=>$entry]);
        }
    }

}
视图 [index/entry.php]:
<?php
use yii\helpers\Url;
?>
<form value="<?php echo Url::to(['index/entry']); ?>" method="post">
    <input type="text" name="_csrf" value="<?php echo Yii::$app->getRequest()->getCsrfToken(); ?>" />
    <input name="name" type="text" />
    <input name="email" type="text" />
    <input type="submit" value="提交" />
</form>
这里没有用YII提供的表单组件及Html的帮助类,前端自定义代码!