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>

相關文章
相關標籤/搜索