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

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

(0)

相关推荐

  • PHP的Yii框架中创建视图和渲染视图的方法详解

    视图是 MVC 模式中的一部分. 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\web\View应用组件来管理, 该组件主要提供通用方法帮助视图构造和渲染,简单起见,我们称视图模板或视图模板文件为视图. 创建视图 如前所述,视图为包含HTML和PHP代码的PHP脚本,如下代码为一个登录表单的视图, 可看到PHP代码用来生成动态内容如页面标题和表单,HTML代码把它组织成一个漂亮的HTML页面.

  • Yii视图操作之自定义分页实现方法

    本文实例讲述了Yii视图操作之自定义分页实现方法.分享给大家供大家参考,具体如下: 1. 视图文件调用cgridview,clistview时候调用自定义的分页方法 <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'news-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'template'=>'{items}{su

  • yii2学习教程之5种内置行为类详解

    前言 众所周知学习所有知识都需要循序渐进,行为也是一样,在我们学会很牛逼的新建行为,然后轻松注入到组件类之前,先看看yii2框架为我们准备的5个内置的行为类,也许你刚要用到~话不多说了,来一起看看详细的介绍: 本节的目的是让各位小伙伴在使用过程中对行为有一个整体上的感觉. 先亮亮相 TimestampBehavior SluggableBehavior BlameableBehavior AttributeTypecastBehavior AttributeBehavior 网上很多文章只是讲解

  • Yii实现自动加载类地图的方法

    本文实例讲述了Yii实现自动加载类地图的方法.分享给大家供大家参考.具体如下: Yii继承的一个静态属性$classMap,可以用于Yii的自动加载类地图.数组中的键是类名,数组中的值是相应类文件的路径. require_once($yii); $app = Yii::createWebApplication($config); Yii::$classMap = array( 'JPhpMailer' => Yii::getPathOfAlias('ext') . '/phpmailer/JPh

  • Yii视图CGridView实现操作按钮定义地址示例

    本文实例讲述了Yii视图CGridView实现操作按钮定义地址的方法.分享给大家供大家参考,具体如下: <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'mem-sub-grid', 'dataProvider'=>$model, 'columns'=>array( 'zpc_catname', array('name'=>'inputtime', 'value'=>'date(&quo

  • PHP的Yii框架中View视图的使用进阶

    视图名 渲染视图时,可指定一个视图名或视图文件路径/别名,大多数情况下使用前者因为前者简洁灵活, 我们称用名字的视图为 视图名. 视图名可以依据以下规则到对应的视图文件路径: 视图名可省略文件扩展名,这种情况下使用 .php 作为扩展, 视图名 about 对应到 about.php 文件名: 视图名以双斜杠 // 开头,对应的视图文件路径为 @app/views/ViewName, 也就是说视图文件在 yii\base\Application::viewPath 路径下找, 例如 //site

  • YII视图整合kindeditor扩展的方法

    本文实例讲述了YII视图整合kindeditor扩展的方法.分享给大家供大家参考,具体如下: 比较喜欢用kindeditor,YII上的版本比较旧,所以自己重新整了个扩展 先在protected\extensions下创建KEditor文件夹用来放文件,keSource里放kindeditor的源文件,然后建三个类KEditor.KEditorManage和KEditorUpload,KEditor是扩展的主文件,KEditorManage是用来浏览服务器文件的,KEditorUpload是用来

  • Yii控制器中操作视图js的方法

    本文实例讲述了Yii控制器中操作视图js的方法.分享给大家供大家参考,具体如下: //YII framework路径 Yii::getFrameworkPath(); //protected/runtime Yii::app()->getRuntimePath(); //protected/venders目录 Yii::import('application.venders.*'); //或在protected/config/main.php说明 'import'=>array( //....

  • Yii2框架类自动加载机制实例分析

    本文实例讲述了Yii2框架类自动加载机制.分享给大家供大家参考,具体如下: 在yii中,程序中需要使用到的类无需事先加载其类文件,在使用的时候才自动定位类文件位置并加载之,这么高效的运行方式得益于yii的类自动加载机制. Yii的类自动加载实际上使用的是PHP的类自动加载,所以先来看看PHP的类自动加载.在PHP中,当程序中使用的类未加载时,在报错之前会先调用魔术方法__autoload(),所以我们可以重写__autoload()方法,定义当一个类找不到的时候怎么去根据类名称找到对应的文件并加

  • Yii视图CGridView列表用法实例分析

    本文实例讲述了Yii视图CGridView列表用法.分享给大家供大家参考,具体如下: CGridView列表实例 <!-- 列表 --> <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'words-grid', 'dataProvider'=>$model->search(),//数据源 'filter'=>$model,//设置过滤器,筛选输入框 'columns'=>a

随机推荐