ThinkPHP5 与 ThinkPHP3.* 之间的使用差异
因为研究TP5时间不是很长,暂时先列以下几处差异:
1、过去的单字母函数已完全被替换掉,如下:
S=>cache,C=>config,M/D=>model,U=>url,I=>input,E=>exception,L=>lang,A=>controller,R=>action
2、模版渲染:$this->display() => return view()/return $this->fetch();
3、在model中调用自身model:$this => Db::table($this->table)
4、在新建控制器与模型时的命名:
①控制器去掉后缀controller:UserController => User
②模型去掉后缀model:UserModel => User
5、url访问:
如果控制器名使用驼峰法,访问时需要将各字母之间用下划线链接后进行访问。
eg:控制器名为AddUser,访问是用add_user来进行访问
6、在TP5中支持配置二级参数(即二维数组),配置文件中,二级配置参数读取:
①Config::get('user.type');
②config('user.type');
7、模板中支持三元运算符的运算:{$info.status ? $info.msg : $info.error}还支持这种写法:{$varname.aa ?? 'xxx'}或{$varname.aa ?: 'xxx'}
8、TP5内置标签:
系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等
9、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');
10、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>
- ThinkPHP5 与 ThinkPHP3.* 之间的使用差异
- 3. 在 as 和 强制类型转换之间,优先使用 as 操作符。
- 生动讲解使用不同方式操作File文件的方法之间的差异
- 使用多重soa来消除企业系统之间的差异
- java直接使用ttf字体,解决window和linux之间的差异
- 如何使用git比较两次commit之间的差异文件
- 3. 在 as 和 强制类型转换之间,优先使用 as 操作符。
- 使用git命令提取两次提交之间的差异文件
- MyBatis与JDBC连接数据库所使用的url之间的差异
- 使用WinMerge比较github项目两个版本之间的差异
- 动态语句和使用参数的相同动态语句和静态语句三者之间的性能差异
- 任何的File.ReadAllText()和使用StreamReader读取文件内容之间的差异?
- 提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之
- thinkphp下MVC之间的跳转与使用技巧
- 使用XStream进行POJO和xml之间的转换
- Winpcap不同版本之间的一个小差异导致的错误。
- 使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- 如何使用部署实用工具和配置来简化在服务器之间移动软件包的工作
- 小心pthread_cond_signal和SetEvent之间的差异
- 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页