YII框架学习笔记之命名空间、操作响应与视图操作示例


Posted in PHP onApril 30, 2019

本文实例讲述了YII框架命名空间、操作响应与视图操作。分享给大家供大家参考,具体如下:

YII基础准备

1.命名空间

<?php
/****假设有三个同名的类,输出的值为A,B,C****/
use a\b\c\apple;
use d\e\f\apple as bApple;
use g\h\i\apple;
$app = new apple();//A
$app = new bApple();//B
$app = new \Apple();//C 调用的是全局的

2.操作响应

<?php 
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
class CountryController extends Controller
{
  public function actionIndex()//不叫方法叫操作
  {
    $request = \YII::$app->request;//能够获取到url值
    echo $request->get('id',20);//如果没有传参可以设置默认值
    if($request->isGet) //isPut
    {
      echo "this is get method";
    }
    echo $request->userIP;//获取用户IP
    $res = \YII::$app->response;//获取响应状态
    $res->statusCode = 404;//人为设置响应状态码
    //$res->headers->add('pragma','no-cache');//设置head不设置缓存
    $res->headers->set('pragma','max-age=5');//设置head缓存5分?秒钟
    $res->headers->remove('pragma');
    //跳转
    $res->headers->add("location","http://www.baidu.com");
    $this->redirect("http://www.baidu.com",302);
    //文件下载
    $res->headers->add('content-disposition','attachment;filename="a.jpg"');
    $res->sendFile("robots.txt");
  }
}

3. Yii视图操作

<?php
namespace app\controllers;
use yii\web\Controller;
class HelloController extends Controller
{
public function actionIndex()
{
$hellp_str = "hello God!";
$data = array();
$data["view_hello_str"] = $hello_str;
return $this->renderPartial("index",$data);
}
}
?>

views\hello\index.php

$helper_str = "hello world!<script>console.log(111);</script>"
<?php
use yii\helpers\Html;//转义
use yii\helpers\HtmlPurifier;//过滤html
<h1><?= Html::encode($view_hello_str);?></h1> <!--Html::encode() 能防止跨站脚本攻击,转义html标签-->
<h1><?= HtmlPurifier::process($view_hello_str);?></h1>
<?= $this->render('_overview') ?><!--在一个视图中调用另一个视图-->

禁用布局

控制器内控制:

public $layout=false/'layout'

控制器成员方法内控制:

$this->layout=false/'layout'

视图中选择布局:

$this->context->layout=false/'layout'

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
phpinfo 系统查看参数函数代码
Jun 05 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php强制更新图片缓存的方法
Feb 11 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
YII框架关联查询操作示例
Apr 29 #PHP
YII框架页面缓存操作示例
Apr 29 #PHP
YII框架http缓存操作示例
Apr 29 #PHP
PHP常见的几种攻击方式实例小结
Apr 29 #PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 #PHP
详解提高使用Java反射的效率方法
Apr 29 #PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 #PHP
You might like
自动跳转中英文页面
2006/10/09 PHP
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
Python编程之string相关操作实例详解
2017/07/22 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
django表单的Widgets使用详解
2019/07/22 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
工程索赔意向书
2014/08/30 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
红白喜事主持词
2015/07/06 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
七年级英语教学反思
2016/02/15 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python