zoukankan      html  css  js  c++  java
  • Yii2实用基础学习笔记(二):Html助手和Request组件 [ 2.0 版本 ]

    Html助手

    1 .在@appviews est的index.php中:

    <?php
    //引入命名空间
    use yiihelpersHtml;
    ?>
    
    <?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 appcontrollers;	//定义命名空间
    use yiiwebController;		//引入命名空间
    use appmodelsArticle;
    class TestController extends Controller{
    	public function actionIndex(){
    		$model = Article::findOne(1);
    		return $this->render('article',['model'=>$model]);
    	}
    }
    

    在@appviews est目录下新建article.php

    <?php
    use yiihelpersHtml;
    ?>
    <?=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

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

    在@appviews est目录的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转义与反转义,使用YiihelpersHtml::encode($html)和yiihelpersHtml::decode($html)

    4 .可以通过yiihelpersHtml::error(模型,字段名,属性数组)来进行验证等错误输出.

    5 .生成标签的代码类似:

    <?= Html::tag('p', Html::encode($user->name), ['class' => 'username']) ?>

    Request组件

    • 简要

      1.一个应用请求是通过yiiwebRequest对象来表示的,用过调用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;
      
  • 相关阅读:
    HasnMap的一种遍历方式:Map.Entry 和 Map.entrySet()
    Java中常见的几个乱码问题以及解决方法
    浅谈JavaScript--this指向
    数据挖掘深入理解和学习路径
    数据分析学习路线
    C#索引器
    浅谈浅拷贝与深拷贝
    词频统计(统计两个连在一起的词出现的频数)
    第一周 词频统计
    莫比乌斯反演总结
  • 原文地址:https://www.cnblogs.com/dwj97/p/6480418.html
Copyright © 2011-2022 走看看