标签分类
技术文章
当前位置:主页 > 计算机编程 > php > YII框架学习笔记之命名空间、操作响应与视图操作实例

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

  • 发布时间:
  • 作者:码农之家原创
  • 点击:123

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

这篇文章主要知识点是关于YII框架,命名空间,操作响应,视图,YII框架学习笔记之命名空间、操作响应与视图操作实例,YII框架模块化处理操作示例 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

你不知道的JavaScript(中卷)
  • 类型:JS大小:7.8 MB格式:PDF出版:人民邮电出版社作者:辛普森
立即下载

本文实例讲述了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程序设计有所帮助。

YII框架模块化处理操作示例

本文实例讲述了YII框架模块化处理操作。分享给大家供大家参考,具体如下:

YII框架模块化处理操作示例

YII框架模块化处理操作示例

config.php

$config = [
  'modules' => [
    'comment' => [
      'class' => 'frontend\modules\comment\Comment',
    ],
    'article' => [
      'class' => 'frontend\modules\article\Article',
      'modules' => [
        'category' => [
          'class' => 'frontend\modules\article\modules\category\Category',
        ],
        'title' => [
            'class' => 'frontend\modules\article\modules\title\Title',
        ],
      ],
    ],
  ],
];
if (!YII_ENV_TEST) {
  // configuration adjustments for 'dev' environment
  $config['bootstrap'][] = 'debug';
  $config['modules']['debug'] = [
    'class' => 'yii\debug\Module',
  ];
  $config['bootstrap'][] = 'gii';
  $config['modules']['gii'] = [
    'class' => 'yii\gii\Module',
  ];
}
return $config;

添加子模块后,在父模块添加管理入口配置,实现父模块管理子模块功能,如果父模块出现bug,子模块将无法继续使用

<?php
namespace frontend\modules\article;
/**
 * article module definition class
 */
class Article extends \yii\base\Module
{
  /**
   * @inheritdoc
   */
  public $controllerNamespace = 'frontend\modules\article\controllers';
  /**
   * @inheritdoc
   */
  public function init()
  {
    parent::init();
    //添加子模块后
    $this->modules = [
      'category' => [
        'class' => 'frontend\modules\article\modules\category\Category',
      ],
    ];
    // custom initialization code goes here
  }
}

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

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

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到儿童python编程入门书籍推、 vue项目中使用md5加密以及、 spring+springmvc+mybatis整合注、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:Laravel自定义command命令代码详解

下一篇:PHP中move_uploaded_file上传中文文件名失败的解决方法

展开 +

收起 -

学习笔记
网友NO.705154

Yii2框架数据验证操作实例详解

本文实例讲述了Yii2框架数据验证操作。分享给大家供大家参考,具体如下: 一、场景 什么情况下需要使用场景呢?当一个模型需要在不同情境中使用时,若不同情境下需要的数据表字段和数据验证规则有所不同,则需要定义多个场景来区分不同使用情境。例如,用户注册的时候需要填写email,登录的时候则不需要,这时就需要定义两个不同场景加以区分。 默认情况下模型的场景是由 rules() 方法申明的验证规则中使用到的场景决定的,也可以通过覆盖 scenarios() 方法来更具体地定义模型的所有场景,例如: public function scenarios() { return [ 'signup' = ['username', 'email', 'password', 'conpassword', 'verifyCode', 'reg_time', 'log_time'], 'login' = ['username', 'password', 'verifyCode', 'rememberMe', 'log_time'] ];} 其中键为场景名称,值为该场景下使用的模型属性(称为活动属性)。 指定模型场景有以下两种方法: 方法一: $model = new User();$model-scenario = 'signup'; 方法二: $model = new User(['scenario' = 'signup']); 可以通过指定验证规则中的'on'属性来申明一条验证规则适用的场景: ['email', 'required', 'on' = 'signup'] 场景主要用于模型属性块赋值和数据验证。调用模型类的 load() 方法进行块赋值的时候,只有当前场景对应使用的属性会被赋值,调用模型类的 validate() 方法进行数据验证的……

网友NO.165478

Yii2框架中使用PHPExcel导出Excel文件的示例

最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 最简单的利用composer安装 composer require "phpoffice/phpexcel": "*" 如果没有安装conposer可以参考下面1.2步 1、引入PHPExcel 首先得要下载phpexcel地址:https://github.com/PHPOffice/PHPExcel/archive/1.8.1.zip 你可以直接在入口文件index.php中引入,也可以在你定义的controller类之前,只要是在你使用之前引入就可以 require dirname(dirname(__FILE__)).'/excel/PHPExcel.php'; 或者在phpexcel类里修改相应的namespace也可。 2、按照下面的代码修改PHPExcel代码目录里的Autoloader.php文件,对比源文件改成: public static function Register() { $functions = spl_autoload_functions(); foreach ( $functions as $function) spl_autoload_unregister($function); $functions = array_merge(array(array('PHPExcel_Autoloader','Load')),$functions); foreach ( $functions as $function) $x = spl_autoload_register($function); return $x;} 上面的函数中,注释掉的是原有的代码。 3、下面的代码是输出Excel,以及一些常用的属性设置,在controller中: public function actionExport(){ $objectPHPExcel = new PHPExcel(); $objectPHPExcel-setActiveSheetIndex(0); $page_size = 52; $model = new NewsSearch(); $dataProvider = $model-search(); $dataProvider-setPagination(false); $data = $dataProvider-getData(); $count = $dataProvider-getTotalItemCount(); $page_count = (int)($count……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明