Yii2学习笔记002---Yii2的控制器和视图
一、控制器文件:TestController.php
1 <?php
2 //1、命名空间使用和TP一致的
3 //定义命名空间
4 namespace app\controllers;
5 //引入基础控制器
6 use yii\web\Controller;
7 class TestController extends Controller{
8 // 2、action的定义位置相反
9 public function actionIndex(){
10 echo 'hello yii2lover';
11 //重定向
12 $this->redirect(['site/index']);
13 //去首页
14 $this->goHome();
15 //返回上一级
16 $this->goBack();
17 //刷新当前页面---会出问题--网页包含重定向循环
18 $this->refresh();
19 //5、使用视图的规则不一样
20 //使用布局模板render(给予)
21 return $this->render('index',['data' => [1,2,3] ] );
22 //不使用布局模板partial(局部的)
23 return $this->renderpartial('index',['data' => [1,2,3] ] );
24 }
25 // 3、当名字为驼峰法俩单词组成时,则请求是r=test/show-user
26 public function actionShowUser(){
27 echo '您是坤哥吗';
28
29 }
30 // 4、请求URL本身的写法的区别index.php?r=控制器名/方法名
31 }
二、视图文件:views/test/index.php
1 test-index
2 <br>
3 <!-- 6、PHP在模板中没有使用模板引擎的语法 -->
4 <?php
5 foreach ($data as $val){
6 echo $val ,'<br>';
7 }
8 ?>
三、要点:
①框架默认的目录的结构有区别:
ThinkPHP3.2.3是APP基础目录和框架基础目录分开;
Yii2框架的话则是框架核心目录是vendor第三方/供应商目录作为里;
当然还有其他区别;
②控制器命名规则
Yii2 的控制器是放在 controllers 里面 , 命名规则是(名称 + Controller.php) , 例如
TestController.php。所有的 controller 都是继承\yii\web\Controller.php、
TP是:TestController.class.php
③视图文件的命名规则
视图的文件全部放在 views 目录中 , 然后控制器名称小写作为子目录 , 接下来就是方
法 名 .php , 例 如 TestController 中 的 index 方 法 , 则 创 建 后 的 文 件 目 录 应 该 为
views/test/index.php
TP是:view/test/index.html
④ $this->render() 和 $this->renderPartial()区别?
$this->render() 和 $this->renderPartial()都可以调用视图文件 , 两个的区别在于 render
的时候会调用 lagout 的公共的文件(如 views/layouts/main.php)
⑤命名空间使用和TP一致的
⑥方法名是actionIndex而不会TP的index或indexAction
⑦请求URL是参数应该如此写:?r=test/index或者默认index简写为:?r=test
⑧方法名是actionShowUser则请求URL是参数应该如此写:?r=test/show-user
⑨模板中没有用模板引擎的语法,而是直接用PHP嵌套的语法