文档章节

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

程序谱写人生
 程序谱写人生
发布于 2016/07/03 14:25
字数 1024
阅读 24
收藏 1

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

浏览结果:

html helpers

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;

© 著作权归作者所有

共有 人打赏支持
程序谱写人生
粉丝 3
博文 72
码字总数 70844
作品 0
海淀
程序员
私信 提问
实用的Laravel Debug调试工具

转载请注明: 转载自Yuansir-web菜鸟 | LAMP学习笔记 本文链接地址: 实用的Laravel Debug调试工具 主要推荐laravel几个适合开发调试用的工具 1.Clockwork 首先Chrome 插件 Clockwork 安装 Co...

Yuansir
2015/01/19
0
2
yii2学习笔记--修改css和js文件(未完成)

(未完成,陆续添加内容) 一、通过模板文件添加的js和css如何修改: 1.1 修改AppAsset.php之中的css、js 假设模板文件为 views/layouts/main.php,观测可知其中有一句: AppAsset::register...

路过暴风
2016/01/06
813
1
详解Yii2框架中生成URL的方法

前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等。URL 更多高级的用法参见官方文档,这篇文章仅仅介...

botkenni
2018/06/07
0
0
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
78
0
liufee/yii2-swoole

yii2 swoole 让yii2运行在swoole上。如果您在使用中遇到问题或者想学习yii2结合swoole可以加qq群258780872一起讨论 性能 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上,而且一句代码...

liufee
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sass和less的优缺点

简述 sass和less都是css的预编译处理语言,他们引入了mixins,参数,嵌套规则,运算,颜色,名字空间,作用域,JavaScript赋值等 加快了css开发效率,当然这两者都可以配合gulp和grunt等前端构...

莫西摩西
23分钟前
0
0
信号量与PV操作

在计算机操作系统中,PV操作是进程管理中的难点。 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号...

shzwork
36分钟前
0
0
重新认识网络通信协议

OSI网络分层 应用层 http, smtp,pop3这些都属于应用层协议 为用户的应用程序提供服务 表示层 确保一个系统的应用层发送的信息被另一个系统的应用层接收到 会话层 通过传输层建立数据传输的通...

最胖的瘦子
50分钟前
1
0
【转】分布式数据流的轻量级异步快照

本篇翻译自论文:Lightweight Asynchronous Snapshots for Distributed Dataflows,Flink的容错快照模型即来源于该论文。原文地址:https://arxiv.org/pdf/1506.08603.pdf 分布式数据流的轻量...

yiduwangkai
53分钟前
1
0
java使用反射机制设置私有成员变量的值

写一个方法:public void setProperty(Objectobj, String propertyName, Object value){}, 此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyNam...

群星纪元
59分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部