YII2中的Html助手和Request组件
Posted 侠岚之弋痕夕
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YII2中的Html助手和Request组件相关的知识,希望对你有一定的参考价值。
html助手 1 .在@app\views\test的index.php中: <?php //引入命名空间 use yii\helpers\Html; ?> <?php //【一】表单:Html::beginForm(提交地址,提交方法,属性数组);?> <?=Html::beginForm(‘‘,‘post‘,[‘id‘=>‘form‘,‘class‘=>‘form‘,‘data‘=>‘myself‘]);?> <?php //【二】输入框:Html::input(类型,name值,默认值,属性数组);?> <?=Html::input(‘text‘,‘test‘,‘‘,[‘class‘ => ‘form-control‘,‘placeholder‘=>‘hehe‘]);?> <?=Html::input(‘email‘,‘email‘,‘[email protected]‘,[‘class‘ => ‘form-control‘]);?> <?=Html::input(‘password‘,‘pwd‘,‘‘,[‘class‘ => ‘form-control‘]);?> <?=Html::input(‘hidden‘,‘hidden‘,‘‘,[‘class‘ => ‘form-control‘]);?> <hr /> <?php //Html::表单类型Input(name值,默认值,属性数组);?> <?=Html::textInput(‘test‘,‘hehe‘,[‘class‘ => ‘form-control‘]);?> <?=Html::textInput(‘email‘,‘[email protected]‘,[‘class‘ => ‘form-control‘]);?> <?=Html::passwordInput(‘pwd‘,‘‘,[‘class‘ => ‘form-control‘]);?> <?=Html::hiddenInput(‘hidden‘,‘‘,[‘class‘ => ‘form-control‘]);?> <hr /> <?php //【三】文本域:Html::textarea(表单name,默认值,属性数组);?> <?=Html::textarea(‘area‘,‘‘,[‘class‘=>‘form-control‘,‘rows‘=>‘3‘]);?> <hr /> <?php //【四】单选按钮:Html::radio(name值,是否选中,属性数组);?> <?=Html::radio(‘sex‘,true,[‘calss‘=>‘form-control‘]);?> <?php //单选按钮列表:Html:;radioList(name值,选中的值,键值对列表,属性数组); ?> <?=Html::radioList(‘height‘,‘1‘,[‘1‘=>‘160‘,‘2‘=>‘170‘,‘3‘=>‘180‘],[‘class‘=>‘form-control‘]);?> <hr /> <?php //【五】复选框:Html::checkbox(name值,是否选中,属性数组);?> <?=Html::checkbox(‘haha‘,true,[‘calss‘=>‘form-control‘]);?> <?php //单选按钮列表:Html:;checkboxList(name值,选中的值,键值对列表,属性数组); ?> <?=Html::checkboxList(‘xixi‘,‘1‘,[‘1‘=>‘160‘,‘2‘=>‘170‘,‘3‘=>‘180‘],[‘class‘=>‘form-control‘]);?> <hr /> <?php //【六】下拉列表:Html:;dropDownList(name值,选中的值,键值对列表,属性数组); ?> <?=Html::dropDownList(‘list‘,‘2‘,[‘1‘=>‘160‘,‘2‘=>‘170‘,‘3‘=>‘180‘],[‘class‘=>‘form-control‘]);?> <hr /> <?php //【七】控制标签Label:Html::label(显示内容,for值,属性数组); ?> <?=Html::label(‘显示的‘,‘test‘,[‘style‘=>‘color:#ff0000‘]);?> <hr /> <?php //【八】上传控件:Html::fileInput(name值,默认值,属性数组); ?> <?=Html::fileInput(‘img‘,null,[‘class‘=>‘btn btn-default‘]);?> <hr /> <?php //【九】按钮:; ?> <?=Html::button(‘普通按钮‘,[‘class‘=>‘btn btn-primary‘]);?> <?=Html::submitButton(‘提交按钮‘,[‘class‘=>‘btn btn-primary‘]);?> <?=Html::resetButton(‘重置按钮‘,[‘class‘=>‘btn btn-primary‘]);?> <?=Html::endForm();?> 在Test控制器中注入视图: return $this->render(‘index‘);
2 .与模型字段关联的Html 和生成普通的表单基本一样,只是需要在操作中对视图注入模型,视图中表单生成方式前面多了active。 在Test控制器的index操作中注入视图与模型数据: <?php namespace app\controllers; //定义命名空间 use yii\web\Controller; //引入命名空间 use app\models\Article; class TestController extends Controller{ public function actionIndex(){ $model = Article::findOne(1); return $this->render(‘article‘,[‘model‘=>$model]); } } 在@app\views\test目录下新建article.php <?php use yii\helpers\Html; ?> <?=Html::beginForm(‘‘,‘post‘,[‘name‘=>‘article‘]);?> <?=Html::activeInput(‘text‘,$model,‘title‘,[‘class‘=>‘form-control‘]);?> <hr /> <?=Html::activeTextInput($model,‘title‘,[‘class‘=>‘form-control‘]);?> <?=Html::activeTextArea($model,‘desc‘,[‘class‘ => ‘form-control‘]);?> <?=Html::activeTextArea($model,‘content‘,[‘class‘=>‘form-control‘]);?> <?=Html::endForm();?> 关联模型字段的html 我们建立一个按钮来提交看一下 在@app\views\test目录的article.php中的 <?=Html::activeTextArea($model,‘content‘,[‘class‘=>‘form-control‘]);?>下面一行加上一个提交按钮: <?=Html::submitButton(‘提交‘,[‘class‘=>‘btn btn-primary‘]);?> 在Test控制器的index操作中判断提交打印一下看是否接受到参数,在$model = Article::findOne(1);上面一行添加代码: if(\Yii::$app->request->isPost){ header(‘Content-Type:text/html;charset=utf-8‘); echo ‘<pre>‘; var_dump(\Yii::$app->request->post()); echo ‘</pre>‘; exit(); } 得到提交的数据了: post数据 3 .Html转义 Yii2提供了html转义与反转义,使用\Yii\helpers\Html::encode($html)和\yii\helpers\Html::decode($html) 4 .可以通过\yii\helpers\Html::error(模型,字段名,属性数组)来进行验证等错误输出. 5 .生成标签的代码类似: <?= Html::tag(‘p‘, Html::encode($user->name), [‘class‘ => ‘username‘]) ?> Request组件 简要 1.一个应用请求是通过yii\web\Request对象来表示的,用过调用\Yii::$app->request来获取 Request对象的一些属性和方法 1.request对象 \Yii::$app->request 2.判断Ajax请求 \Yii::$app->request->isAjax 3.判断POST请求 \Yii::$app->request->isPost 4.获取浏览器信息 \Yii::$app->request->userAgent 5.获取客户端IP \Yii::$app->request->userIp 6.读取所有get数据 \Yii::$app->request->get() 7.读取单个get数据 \Yii::$app->request->get(‘r‘) 8.读取所有post数据 \Yii::$app->request->post() 9.读取单个post数据 \Yii::$app->request->get(‘post‘) 10.获取不包含host info的url部分 \yii::$app->request->url 11.获取整个URL \Yii::$app->request->absoluteUrl 12.获取host info部分 \Yii::$app->request->hostInfo; 13.入口脚本之后查询字符串之前 \Yii::$app->request->pathInfo 14.查询字符串 \Yii::$app->request->queryString 15.host info之后,入口脚本之前部分 \Yii::$app->request->baseUrl;
以上是关于YII2中的Html助手和Request组件的主要内容,如果未能解决你的问题,请参考以下文章