TP5随笔

1.MVC思想要深入体会

V层就是用来对数据进行包装的。
那么C层呢,C层就是个大指挥官,它从这边拿点数据,从那边拿点数据,让这个处理处理,让那个处理处理。然后让这个包装一下,让那个包装一下,最后它感觉满意了,再把包装好的产品一并返回给用户。M层呢?就是用来被C层调用的

C层:调用模型M、调用视图V;将模型产生的数据传递给视图,并让视图去显示

namespace app\index\controller;     // 该文件位于application\index\controller文件夹
use think\Controller;   // 用于与V层进行数据传递
use app\common\model\Teacher;       // 教师模型
/**
 * 教师管理,继承think\Controller后,就可以利用V层对数据进行打包了。
 */
class TeacherController extends Controller

 

2.php5.4.3编换成php7.0之后访问页面会提示错误,要下载安装 xdebug放在php文件夹内 并更改php.ini文件(xdebug可以用来跟踪,调试和分析PHP程序的运行状况并且影响var_dump返回数据显示形式)

[XDebug]
zend_extension="D:\phpStudy\php\php-5.4.45\php_xdebug.dll"

3.入口自动绑定模块要设置成true    'auto_bind_module' => true,

4. 控制器类后缀要设置成true    'controller_suffix' =>true, 

所有控制器后面需要加上Controller,这个是方便区别控制器和模型命名冲突

设置之后URL地址中访问控制器就不需要加controller

5.如果控制器名字为驼峰法命名,则URL地址访问需要用_分开,配置文件中设置默认是开启的

6.bootstrap安装:下载后把文件放置到TP5.0 public/static文件夹中,然后在视图文件进行引入

7.静态方法

$postData = Request::instance()->post();可以替换为$postData = $this->request->post(); 同样可以获取表单post数据,但是倾向于使用前者

在前面的3.2.3中,我们使用Db::name('teacher')->select();来获取了数据表中的数据。对比我们在这里使用的Request::instance()->post();不难发现::这个符号。在这里,我们可以把Db::name('teacher')理解为调用Db类中的name方法;把Request::instance()->post();理解为调用Request类中的instance()方法。

前面我们在提到面向对象的思想时,讲过面向对象的步骤是:先实例化一个对象,然后调用这个对象上的方法。

那么为什么这里,我们没有实例化Db类,却直接使用了::调用name()方法呢?

这是由于在类中有一种方法叫做静态方法静态方法可以不进行实例化而直接使用::来调用。而上面的name()instance()都是ThinkPHP为我们准备好的静态方法。

8.为了防止sql注入(一种非常常见的攻击手法),我们在取一些系统变量信息时,使用thinkphp提供给我们的Request来获取用户输入的变量。

那么怎么防止sql注入呢?下面,我们在config.php中设置一下过滤方法:

    // 默认全局过滤方法 用逗号分隔多个
    'default_filter'         => 'htmlspecialchars',
use think\Request;			// 引用Request
...
    public function insert()
    {
        var_dump($_POST);
        // Request::instance()返回了一个对象,调用这个对象的post()方法,得到post数据
        $postData = Request::instance()->post();  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值