YII2 基础知识

YII框架

php框架:cakephp、codeIgniter、symfony、thinkphp、zendframework、yii...

YII是一个高性能框架,代码重用发挥到极致,惰性加载框架,速度比较快。

YII框架是美籍华人"qiang“于2008年1月开始开发YII框架,他原来是Prado框架的核心开发成员之一,维护该框架超过3年,YII框架的设计思想来源于Prodo、Ruby on Rails、jQuery、Symfony、Joomla。

YII是一个基于组件、用于开发大型web应用的高性能php框架,将web编程中的可重用性发挥到机制,能显著加速开发进程。

控制器

//请求组件
$id = Yii::$app->request->get('id',0);
//响应组件
Yii::$app->response->statusCode=404;

$header = Yii::$app->response->headers;
$header->add('pragma', 'no-cache');
$header->add('pragma', 'max-age=5');
$header->remove('pragma');
//重定向
$header->add('location','http://www.baidu.com');
$this->redirect('http://www.baidu.com',302);

//以附件形式下载
$headers = Yii::$app->response->headers;
$headers->add('content-disposition','attachment;filename="download.txt"');
//文件下载快捷操作
$file = '/test.txt';
Yii::$app->response->sendFile($file);

创建自定义函数

新建/common/helper/function.php文件用于保存自定义函数。

function p($var){
  echo '<pre>';
  var_dump($var);
  echo '</pre>';
}

将前台或后台的入口文件中加载此文件即可。
/frontend/web/index.php
/backend/web/index.php

require(__DIR__ . '/../../common/helper/function.php');

控制器接收参数

//定义request请求对象
$request = Yii::$app->request;

//判断是否是get方式传递的参数
if($request->isGet){
  //获取get传入的id
  $id = $request->get('id',0);
}

//判断是否是post方式传递的参数
if($request->isPost){
  //获取post传入的username
  $username = $request->post('username');
}

//获取客户端IP地址
$ip = $request->userIp;

控制器接收参数并传递到视图

/frontend/controllers/SiteController.php

public function actionIndex(){
  $request = Yii:$app->request;
  //定义输出数据
  $data = [];
  $data['ip'] = $request->userIp;
  //向模板中输出
  return $this->renderPartial('index',$data);
}

使用compact()同时分配多个参数

public function actionIndex()
{
  $request = Yii::$app->request;
  $client['ip'] = $request->userIp;
  $client['time'] = time();

  $user['username'] = 'junchow';
  $user['age'] = 29;
  //将多个数组合并为一个关联数组
  $data = compact($client, $user);
  return $this->redirectPartical('index', $data);
}

Yii控制器中的renderPartical()和render()有何不同。

  • renderPartical() 直接输出原始页面
  • render() 使用layout布局模板

视图模板中输出变量拥有两种方式

  • <?php echo $user['username'] ?>
  • <?=$user['username']?>
    将HTML原样输出,即输出实体化符号。
<?php
use \yii\helpers\Html;
?>
<p><?=Html::encode($user['username'])?></p>

//过滤掉非法的HTML标签,例如script标签。

<?php
use \yii\helper\HtmlPurifier;
?>
<p><?=Html::process($user['username'])?></p>

视图模板

模板渲染的两种方式

//渲染父模板,输出父模板内容,将渲染的内容嵌入到父模板。
return $this->render('index',$data);

//不输出父模板内容,仅对本次渲染的局部内容进行输出。
return $this->renderPartial('index',$data);

创建自定义布局模板

1.创建控制器并自定义布局模板变量
/frontend/controllers/IndexController.php

<?php
namespace frontend\controllers;

class IndexController extends  BaseController
{
    //自定义布局模板,默认为main
    public $layout = 'index';

    public function actionIndex()
    {
         // 渲染父模板
        return $this->render('index');
    }

}

2.创建布局模板文件
/frontend/views/layouts/index.php

<p>layouts header</p>
<?=$content;?>
<p>layouts footer</p>

模板之间的相互调用

在模板文件中使用$this->render('side')调用side模板文件
/frontend/views/index/side.php

this is side area

/frontend/views/index/index.php

<p>index page content!</p>
<?=$this->render('side')?>

模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值