Yii2的Html,Request组件详解

简介:

1、Request组件

    Request封装了$_SERVER,统一了不同Web服务器的变量 , 并且提供$_POST,$_GET,$_COOKIES ,还包括HTTP中PUT、DELETE等方法

2、调用Request组件

    1) 直接调用Request类 : \Yii::$app->request
    2) 常用Request方法及属性

判断是不是Ajax请求:\Yii::$app->request->isAjax        判断是不是Post请求:\Yii::$app->request->isPost        获取用户浏览器:\Yii::$app->request->userAgent        获取用户IP:\Yii::$app->request->userIp        读取$_GET全部数据: \Yii::$app->request->get()读取$_GET数据:\Yii::$app->request->get(‘username’)读取$_POST全部数据:\Yii::$app->request->post()读取$_POST数据:\Yii::$app->request->post('username')

    更多的信息可以查阅:http://www.yiiframework.com/doc-2.0/yii-web-request.html


3、Html组件

    \yii\helpers\Html组件 , 提供了封装好的Html代码 , 直接调用Html的相对方法就可以生成相对应的Html代码 。

4、调用常用的Html组件之直接生成Html

    1) 生成表单

//beginForm(‘提交的Url’ , ‘类型POST或GET’ , ‘单表的属性id,class等’)<?=\yii\helpers\Html::beginForm('','post',['id'=>'addForm']);?>//endForm也是必须,就是闭合表单<?=\yii\helpers\Html::endForm();?>

    2) 生成Text输入框

//input(“类型text/password/text” , ‘name的名称’ , ‘默认值’ , ‘属性例如class,id等’);<?=\yii\helpers\Html::input('text',‘name’,'',['class'=>'name','id'=>'name']);?>//直接生成指定类型的typeInput(‘name的名称’ , ‘默认值’ , ‘属性例如class,id等’)//直接生成password类型的输入框<?=\yii\helpers\Html::passwordInput('pwd','',['id'=>'password'])?>//直接生成text类型的输入框<?=\yii\helpers\Html::textInput("name",'',['id'=>'name'])?>//直接生成hidden类型的隐藏框<?=\yii\helpers\Html::hiddenInput("hidden",'',['id'=>'hidden'])?>

    3) 生成textArea

//textarea(‘name的名称’ , ‘默认值’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::textarea('intro','',['class'=>'intro']);?>

    4) 生成radio 及radio列表

//radio(‘name的名称’ , ‘是否选中true/false’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::radio('status',false,['class'=>'status'])?>//radioList(‘name的名称’ ,’选中的值’ , ‘数组选中键值’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::radioList('fav',1,[1=>'test',2=>'mrs'],['class'=>'fav-list'])?>

    5) 生成checkbox 及checkbox列表

//checkbox(‘name的名称’ , ‘是否选中true/false’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::checkbox("ckbox",false,['class'=>'ckbox'])?>//checkboxList(‘name的名称’ ,’选中的值’ , ‘数组选中键值’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::checkboxList('cklist',1,[1=>'mr',2=>'s'],['class'=>'cklist'])?>

    6)生成select下拉框

//dropDownList(‘name的名称’ ,’选中的值’ , ‘数组选中键值’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::dropDownList('sts',0,[1=>'是',0=>'否'],['class'=>'sts'])?>

    7)生成label

//label(‘显示的名称’ , ‘for的字段’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::label('name:','uname',['class'=>'label'])?>

    8)生成上传控件

//fileInput(‘name的名称’ , ‘默认值’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::fileInput('image',null,['class'=>'upload'])?>

    9)生成按钮

//button(‘显示的文字’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::button("按钮",['class'=>'btn'])?><?=\yii\helpers\Html::submitButton("提交按钮",['class'=>'btn-submt'])?><?=\yii\helpers\Html::resetButton("重置",['class'=>'btn-reset'])?>

 5、调用常用的Html组件之生成与Model字段关联的Html


    1)生成Text输入框

//$model是实例化一个Model , title则是他的字段//activeInput(‘input的类型text/password’ , ‘实例化Model’, ‘字段’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeInput('title', $model,'title',['class'=>‘input'])?>         //直接生成指定类型的typeInput(‘ ‘实例化Model’ , ‘字段’ , ‘属性例如class,id等’)         <?=\yii\helpers\Html::activeTextInput($model, 'name' , ['class' => 'input'])?>         <?=\yii\helpers\Html::activePasswordInput($model, 'pwd' , ['class' => 'input'])?>         <?=\yii\helpers\Html::activeHiddenInput($model, 'name' , ['class' => 'input'])?>

    2)生成textArea

//activeTextarea(‘实例化Model’, ‘字段’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeTextarea($model ,'content',['class'=>'intro']);?>

    3)生成radio 及radio列表

//activeRadio(‘实例化Model’, ‘字段’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeRadio($model ,'sts',['class'=>'status'])?>//activeRadioList(‘实例化Model’, ‘字段’, ‘数组(键值)’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeRadioList($model,'sts',[1=>'mrs',2=>'s'],['class'=>'st'])?>

    4)生成checkbox 及checkbox列表

//activeCheckbox(‘实例化Model’, ‘字段’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeCheckbox($model ,'sts',['class'=>'ckbox'])?>//activeCheckboxList(‘实例化Model’, ‘字段’, ‘数组(键值)’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeCheckboxList($model ,'sts',[1=>'f',2=>'m'],['class'=>'ss'])?>

    5)生成select下拉框

//activeDropDownList(‘实例化Model’, ‘字段’, ‘数组(键值)’ , ‘属性例如class,id等’)<?=\yii\helpers\Html::activeDropDownList($model,'fg',[1=>'f',2=>'m'],['class'=>'sx'])?>

6、Html转义和反转义html代码



<?php        $html =‘<b>test</b>’;        //转义html代码        $thtml = \yii\helpers\Html::encode($html);//反转义html代码        $html = \yii\helpers\Html::decode($thtml);?>

本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/1851187

相关文章
|
12月前
Echarts组件tooltip提示框formatter函数返回的HTML样式解决方案
Echarts组件tooltip提示框formatter函数返回的HTML样式解决方案
297 0
|
1月前
|
移动开发 前端开发 HTML5
HTML5 组件Canvas实现电子钟
HTML5 组件Canvas实现电子钟
18 3
|
1月前
|
移动开发 前端开发 JavaScript
HTML5 Canvas组件绘制太极图案
HTML5 Canvas组件绘制太极图案
13 0
|
1月前
|
移动开发 前端开发 JavaScript
HTML5 组件Canvas实现图像灰度化
HTML5 组件Canvas实现图像灰度化
18 0
|
2月前
|
JavaScript 搜索推荐 UED
一种将 Vue 组件渲染为 HTML 字符串的技术
【5月更文挑战第8天】Vue 的服务器端渲染(SSR)技术在服务器上将组件渲染为 HTML,提升首屏加载速度和 SEO。优点包括更快的用户体验、更好的搜索引擎优化及减轻客户端负担。然而,SSR也带来服务器压力增大、开发复杂性和额外的构建配置需求。vue-server-renderer 包支持 Vue SSR,但是否采用取决于项目需求和资源。
26 1
|
2月前
|
移动开发 JavaScript 前端开发
【专栏:HTML进阶篇】HTML模板与Web组件:可复用的网页元素
【4月更文挑战第30天】HTML模板和Web组件提升网页开发效率和可维护性。HTML模板,如&lt;template&gt;元素和服务器端模板引擎,用于创建可复用的HTML结构。Web组件是自定义的HTML元素,结合影子DOM和模板,实现封装的可重用组件。两者助力构建高效、现代的网页和网站。
|
2月前
|
JSON 资源调度 小程序
一个强大的小程序富文本组件mp-html
一个强大的小程序富文本组件mp-html
98 0
|
8月前
|
存储 JavaScript 前端开发
html+vue组件实现阿里云OSS对接
html+vue组件实现阿里云OSS对接
496 0
|
8月前
|
前端开发
HTML + CSS各种好看按钮组件
HTML + CSS各种好看按钮组件
|
9月前
23Vue - 绑定 HTML Class(用在组件上)
23Vue - 绑定 HTML Class(用在组件上)
56 0