ThinkPHP5 与 ThinkPHP3.* 之间的使用差别

由于研究TP5时间不是很长,暂时先列如下几处差别:php

一、过去的单字母函数已彻底被替换掉,以下:thinkphp

S=>cache,C=>config,M/D=>model,U=>url,I=>input,E=>exception,L=>lang,A=>controller,R=>action数组

二、模版渲染:$this->display() => return view()/return $this->fetch();bash

三、在model中调用自身model:$this => Db::table($this->table)函数

四、在新建控制器与模型时的命名:fetch

  ①控制器去掉后缀controller:UserController => Userui

  ②模型去掉后缀model:UserModel => Userthis

五、url访问:url

  若是控制器名使用驼峰法,访问时须要将各字母之间用下划线连接后进行访问。spa

  eg:控制器名为AddUser,访问是用add_user来进行访问

六、在TP5中支持配置二级参数(即二维数组),配置文件中,二级配置参数读取:

  ①Config::get('user.type');

  ②config('user.type');

七、模板中支持三元运算符的运算:{$info.status ? $info.msg : $info.error}还支持这种写法:{$varname.aa ?? 'xxx'}或{$varname.aa ?: 'xxx'}

八、TP5内置标签:

  系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括全部的比较标签)、(not)present、(not)empty、(not)defined等

九、TP5数据验证:

  $validate = new Validate(['name' => 'require|max:25','email' => 'email']);

  $data = ['name' => 'thinkphp','email' => 'thinkphp@qq.com'];

  if(!validate->check($data)){

    debug::dump($validate->getError());

  }

  注:使用助手函数实例化验证器——$validate = validate('User');

十、TP5实现了内置分页,使用以下:

  查询状态为1的用户数据,且每页显示10条数据

  $list = model('User')->where('status',1)->paginate(10);

   $page = $this->render();

   $this->assign('_list',$list);

   $this->assign('_page',$page);

   return $this->fetch();

  模板文件中分页输出代码以下:

  <div>{$_page}</div>

相关文章
相关标签/搜索