Yii2实用基础学习笔记(二):Html助手和Request组件 [ 2.0 版本 ]
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();?>

我们建立一个按钮来提交看一下
在@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();
}
得到提交的数据了:

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组件 [ 2.0 版本 ]的更多相关文章
- Java基础学习笔记二十八 管家婆综合项目
本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...
- javascript第二遍基础学习笔记(二)
一.操作符 1.一元操作符: 自加自减(分前置和后置2种):++.-- 区别:前置的先自加或自减,后进行计算:而后置的是先进行计算,后自加或自减(在其会产生负面影响时才能体现区别): ; i++; / ...
- Java基础学习笔记二十一 多线程
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- Java基础学习笔记二十五 MySQL
MySQL 在dos中操作mysql 连接mysql命令: mysql -uroot -p密码 ,连接OK,会出现mysql> 对数据库的操作 创建一个库 create database 库名 ...
- Java基础学习笔记二十六 JDBC
什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库,J ...
- Java基础学习笔记二十七 DBUtils和连接池
DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发 ...
- 使用JSP实现输出(web基础学习笔记二)
Jsp:Java Server Page 服务器端的Java页面,动态网页技术 jsp注释 显式注释:这种注释客户端是允许看见的;<!--html注释--> 隐式注释:这种注释客户端是看不 ...
- yii2源码学习笔记(二十)
Widget类是所有部件的基类.yii2\base\Widget.php <?php /** * @link http://www.yiiframework.com/ * @copyright ...
- Java基础学习笔记二 Java基础语法
注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...
随机推荐
- UserAgent伪装浏览器
经常逛论坛的朋友经常会遇到这样的问题:论坛个性签名里的JS代码把个人浏览器信息等被人一览无余,我并不想他们得到我的这类信息. 咋办?很简单的办法就是伪装,怎么伪装?对于chrome.firefox等这 ...
- java GC optimization, G1GC
引用 http://www.avricot.com/blog/?post/2010/05/03/Get-started-with-java-JVM-memory-(heap%2C-stack%2 ...
- HTTP请求和响应2:方法(Method)
方法表明了client希望server对资源运行的动作.经常使用的方法包含:GET.HEAD.POST.PUT.TRACE.OPTIONS和DELETE,每一个server能够实现这些方法中的部分或者 ...
- Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
Elasticsearch 的查询很灵活,并且有Filter,有分组功能,还有ScriptFilter等等,所以很强大.下面上代码: 一个简单的查询,返回一个List<对象> .. ...
- How to Check some table was locked
select * from sys.sysprocesses where blocked<>0 看看waittime是不是很大 kill spid
- [转]php-fpm配置具体解释
[转]php-fpm配置具体解释 php-fpm具体解释 原文链接:http://php-fpm.anight.org/wiki:http://www.php-fpm.com/翻译:http://sy ...
- Cocos2d-X中创建菜单项
Cocos2d-X中创建菜单的类: CCMenuItemFont:创建纯文本的菜单项 CCMenuItemAtlasFont:创建带有艺术字体的菜单项 CCMenuItemImage:用图片创建菜单项 ...
- (三)Thymeleaf标准表达式之——文字(literals)
2.2 文字(literals) 模板名称:text.html 2.2.1 文本(text literals)(放在 单引号 里面,可以是任意字符) <p> Now you are loo ...
- 捕获php请求内容
通过将phpinfo()打印到文件实现 <?php echo str_pad('', 1024);//使缓冲区溢出 ob_start();//打开缓冲区 phpinfo(); $string = ...
- linux常用命令(个人学习笔记)
个人说明:学习linux也有半年左右的时间了,从一开始的只会简单的开关机,到现在的熟悉应用一些简单的命令,还是有些进步的,不过对于我这种菜鸟来说,如果不经常用,发现忘的很快.所以就把在学习过程中遇到的 ...