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','admin@admin.com',['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','admin@admin.com',['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组件的更多相关文章

  1. Yii2实用基础学习笔记(二):Html助手和Request组件 [ 2.0 版本 ]

    Html助手 1 .在@app\views\test的index.php中: <?php //引入命名空间 use yii\helpers\Html; ?> <?php //[一]表 ...

  2. PHP在yii2中封装SuperSlide 幻灯片编写自己的SuperSlideWidget的例子

    因为近期给朋友公司做个门户网站,把荒置了6.7年的PHP又重新拾起,发现PHP这些年兴旺多了,很多新的东西看的不明不白,研究了几个框架ZendFramework.thinkphp.Symfony.yi ...

  3. YII2中behavior行为的理解与使用

    YII2中的行为说白了就是对组件功能的扩展,在不改变继承关系的条件下. 行为附加到组件后,行为将注入自已的方法和属性到组件,可以像组件访问自定义的方法和属性一样访问行为. 注意行为是对功能的扩展,不要 ...

  4. YII2中分页组件的使用

    当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件. 首先我们创建操作数据表的AR模型: <?php namespace app\models; use y ...

  5. Yii2 配置request组件解析 json数据

    在基础版本的config目录下 web.php 或者高级版config目录下的main.php中配置 'components' =>[ 'request' => [ 'parsers' = ...

  6. js生成的cookie在yii2中获取不到的解决办法

    在js中创建的cookie,默认用yii2中自带的方法Yii::$app->request->cookies->get('abc')获取不到,而用$_COOKIE['abc']又是能 ...

  7. YII2中日志的配置与使用

    YII2中给我们提供了非常方便的日志组件,只需要简单配置一下就可以使用. 我们在config/web.php中配置如下: return [ //log必须在bootstrap期间就被加载,便于及时调度 ...

  8. Yii2 中cookie的用法(2)

    设置Cookie PHP setcookie("name", "Larry", time()+3600); Yii2 $cookies = Yii::$app- ...

  9. yii学习笔记(4),获取请求数据的request组件

    yii在控制器中获取请求数据需要通过request组件来完成 <?php namespace app\controllers; use yii; use yii\web\Controller; ...

随机推荐

  1. DMA&PIO

    DMA&PIO   DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式.在DMA模式下,CPU只须 ...

  2. xapp1052之dma_test.v

    dma_test是针对dma硬件设计的仿真测试文件,文件包括DMA写数据测试,DMA读数据测试以及DMA读写数据测试.这个测试文件其实就是模拟pc的应用程序对fpga设备进行DMA读写. DMA写测试 ...

  3. 如何对多个文件进行MODELSIM仿真? (由于是一个很大的项目,不可能把所有MODULE都放在一个文件里。 如何在ModelSim中对多个.V文件进行仿真?)

    可以将所有要编译的所有文件的名字做一个list.新建一个文本文档,重命名为vflist vflist内容例子如下(src为文件夹):src/base_addr_chk.vsrc/config_mux. ...

  4. [svc][op]磁盘MBR分区机制- inode/Block深入实战

    一 思路: 1,磁盘物理结构及大小计算 2,分区 MBR GPT知识 3,fdisk分区 挂载 自动挂载 4,格式化文件系统 5,inode block 6,软硬链接 查看磁盘: [root@moba ...

  5. IP地址归属地查询

    http://www.ipip.net/download.html#ip_code 下载免费版 IP 地址数据库. 网站下面有官方给出的查找IP地址所属国家.省.市的办法. python版本列出 py ...

  6. hive12启动报错org.apache.thrift.server.TThreadPoolServer.<init>(Lorg/apache/thrift/server/TThreadPoolServer$Args;)

    执行如下命令启动hive服务:./bin/hive --service hiveserver,报如下错误: Starting Hive Thrift ServerException in thread ...

  7. Permission denied (publickey). fatal: The remote end hung up unexpectedly 解决办法

    这两天学习git的时候,在本地创建了一个库,同时自己在GitHub上面也创建了一个库,照着廖老师的教程一步一步走到了push的环节突然出现了这样的错误: [zhangxiyu@localhost le ...

  8. if的另一个实现思路

    在一些场景中需要根据根据一个传入的额值来做不同的处理,而且if有很多层,此时如果一直写if代码就会雍容.一种比较好的方法就是写一个map列出与if对应的情况,然后map的value就能放一些方法或者其 ...

  9. Python递归实现汉诺塔

    Python递归实现汉诺塔: def f3(n,x,y,z): if(n==1): print(x,'--->',z) else: f3(n-1,x,z,y) print(x,'--->' ...

  10. DevExpress gridcontrol学习知识点

    .//允许自动合并单元格gv1.OptionsView.AllowCellMerge = true; 设置某列不合并 选中该列,在OptionsColumns-->AllowMerge中设置为f ...