@omg-two
2017-03-15T02:48:40.000000Z
字数 1474
阅读 1480
学习计划
框架
ThinkPHP5
http://www.kancloud.cn/yunzhiclub/thinkphp5guide/169426
账号:omg_two
密码:23#224
ThinkPHP5框架『单入口模式』,即无论怎么修改项目,最终我们进入工程的 入口文件 都在 http://localhost/thinkphp5/public/index.php。默认情况下,访问入口文件index.php就能够自动调用index()方法。
关于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变量不会被翻译,双引号则会。单引号执行效率更高,但是可以忽略不计。
public function test()
{
$ExamResult = new ExamResult;
$examResults = $ExamResult->where('exam_id',1)->where('stu_id','in',[10,15,14]);
var_dump($examResults->column('accuracy'));
var_dump($examResults->column('duration'));
}
在上述两次查询中,实际运行的sql语句为:
[ SQL ] SELECT `accuracy` FROM `yunzhi_exam_result` WHERE `exam_id` = 1 AND `stu_id` IN (10,15,14) [ RunTime:0.000395s ]
[ SQL ] SELECT `accuracy` FROM `yunzhi_exam_result` [ RunTime:0.000242s ]
第二次的查询并没有像第一次那样,加上了where判断条件。
在模型层,调用其他模型的属性,会出现意外情况。例如
public function getTeacherName()
{
$name = $this->Course->Teacher->name;
return $name;
}
上面的返回值是'Teacher',实际上期望值是教师的名字。
估计是用到了model层的保留字的原因