一、控制器文件: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嵌套的语法
To spare no effort to be a niubility in such a city with so so so many niubilities!!!