[关闭]
@omg-two 2017-03-15T02:48:40.000000Z 字数 1474 阅读 1480

ThinkPHP5.0入门实例教程学习

学习计划 框架 ThinkPHP5


当前进度

http://www.kancloud.cn/yunzhiclub/thinkphp5guide/169426
账号:omg_two
密码:23#224

学习进度

章节笔记

第一章

git的安装

ThinkPHP5的安装

第二章

第一节

       ThinkPHP5框架『单入口模式』,即无论怎么修改项目,最终我们进入工程的 入口文件 都在 http://localhost/thinkphp5/public/index.php。默认情况下,访问入口文件index.php就能够自动调用index()方法。

官方开发手册: http://www.kancloud.cn/manual/thinkphp5/125729

第二节

       关于url结构,ThinkPHP5采用MCA模式,所谓的MCA即模块:module,控制器:controller,触发器:action。其中,每一个URL都会对应着一个触发器。

关于MCA的,以下面为例http://127.0.0.1/thinkphp5/public/index.php/yunzhi/hi/yunzhier

那么,yunzhi即为module,那么进入application文件夹下,会有一个yunzhi的文件夹;yunzhi文件夹下面的controller文件夹下,必定有一个Hi.php (首字母大写) 文件,文件中有个叫做Hi的类,所谓的控制器,就是指的这两个;而控制器文件中的方法,yunzhier被称之为触发器。

【注意】: 我们把这个function又叫做触发器,而且我们仅将Controller中的function叫做触发器,原因大概是由于这个function如果想被执行的话,需要用户输入特定的URL。我们说当用户输入特定的URL后,这个方法被触发了,所以叫做触发器。

第三节

单引号与双引号的区别。单引号中的php变量不会被翻译,双引号则会。单引号执行效率更高,但是可以忽略不计。

第三章

框架疑惑问题

数据库查询

  1. public function test()
  2. {
  3. $ExamResult = new ExamResult;
  4. $examResults = $ExamResult->where('exam_id',1)->where('stu_id','in',[10,15,14]);
  5. var_dump($examResults->column('accuracy'));
  6. var_dump($examResults->column('duration'));
  7. }

在上述两次查询中,实际运行的sql语句为:

  1. [ SQL ] SELECT `accuracy` FROM `yunzhi_exam_result` WHERE `exam_id` = 1 AND `stu_id` IN (10,15,14) [ RunTime:0.000395s ]
  2. [ SQL ] SELECT `accuracy` FROM `yunzhi_exam_result` [ RunTime:0.000242s ]

第二次的查询并没有像第一次那样,加上了where判断条件。

模型层的bug

在模型层,调用其他模型的属性,会出现意外情况。例如

  1. public function getTeacherName()
  2. {
  3. $name = $this->Course->Teacher->name;
  4. return $name;
  5. }

上面的返回值是'Teacher',实际上期望值是教师的名字。
估计是用到了model层的保留字的原因

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注