yii2 html转换,Yii2实用基础学习笔记(二):Html助手和Request组件

Html助手

1 .在@app\views\test的index.php中:

//引入命名空间

use yii\helpers\Html;

?>

=Html::beginForm('','post',['id'=>'form','class'=>'form','data'=>'myself']);?>

=Html::input('text','test','',['class' => 'form-control','placeholder'=>'hehe']);?>

=Html::input('email','email','admin@admin.com',['class' => 'form-control']);?>

=Html::input('password','pwd','',['class' => 'form-control']);?>

=Html::input('hidden','hidden','',['class' => 'form-control']);?>


=Html::textInput('test','hehe',['class' => 'form-control']);?>

=Html::textInput('email','admin@admin.com',['class' => 'form-control']);?>

=Html::passwordInput('pwd','',['class' => 'form-control']);?>

=Html::hiddenInput('hidden','',['class' => 'form-control']);?>


=Html::textarea('area','',['class'=>'form-control','rows'=>'3']);?>


=Html::radio('sex',true,['calss'=>'form-control']);?>

=Html::radioList('height','1',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control']);?>


=Html::checkbox('haha',true,['calss'=>'form-control']);?>

=Html::checkboxList('xixi','1',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control']);?>


=Html::dropDownList('list','2',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control']);?>


=Html::label('显示的','test',['style'=>'color:#ff0000']);?>


=Html::fileInput('img',null,['class'=>'btn btn-default']);?>


=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');

浏览结果:

c267b5c809b20db59a93aea9bc9edb9a.png

2 .与模型字段关联的Html

和生成普通的表单基本一样,只是需要在操作中对视图注入模型,视图中表单生成方式前面多了active。

在Test控制器的index操作中注入视图与模型数据:

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

use yii\helpers\Html;

?>

=Html::beginForm('','post',['name'=>'article']);?>

=Html::activeInput('text',$model,'title',['class'=>'form-control']);?>


=Html::activeTextInput($model,'title',['class'=>'form-control']);?>

=Html::activeTextArea($model,'desc',['class' => 'form-control']);?>

=Html::activeTextArea($model,'content',['class'=>'form-control']);?>

=Html::endForm();?>

64cf3136ef2dd942def2d1250302d5ed.png

我们建立一个按钮来提交看一下

在@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 '

';

var_dump(\Yii::$app->request->post());

echo '

';

exit();

}

得到提交的数据了:

c84fabb3c3b5fd722d975fdd1297c06e.png

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值