在Laravel框架里,利用return view()来渲染模版;而ThinkPHP里则利用了$this->display()的办法渲染模版。
2、在实际开拓中我们常常碰着这样的问题,便是开拓地点不固定。
这就造成了我们须要频繁的变动数据库配置,给开拓事情造成了麻烦。TP依然没有避免这个"灾害",在laravel框架中,.env环境文件的涌现办理了这个麻烦。我们只须要在不同的事情地点配置好.env文件就不避再进行配置,由于无论是git还是svn,“.env是不会随着文件一起提交到做事器的”。

3、Laravel框架供应了大量的闭包
作为菜鸟的我目前只利用了use方法,即如何在函数内部利用外层变量。
4、post传值中把稳点不同
在Laravel框架里,由于其考虑到了跨站攻击,以是如果利用form表单以post办法进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法缺点,而TP框架则须要自己手动完成防止跨站攻击的代码。
5、条件判断语句书写办法的差异
Laravel框架里if else判断语句和foreach语句,书写时必须以@if开头,以@endif结尾。如果没有则报语法缺点,@foreach @endforeach同理;而TP框架则和PHP语法规则利用办法同等,直接用if esle语句判断和foreach循环遍历。
6、Laravel里内置了大量的方法供开拓者利用
在实际运用中更靠近于"让工具完成统统"的开拓思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。例如对用户名的验证:我们可以利用validate方法里'username'=>'required'(不能为空)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如email;same:字段名;diff:字段名等大量的方法极大的提高了开拓速率。
7、加密办法
在TP框架中,我们对用户名密码进行加密时利用md5();的办法进行加密。但md5的缺陷在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能涌现相同的,这就降落其安全性。但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会涌现相同的情形,这就提高了安全性。
8、建表
Laravel在数据库建表上有自己独立内置的构造,可以完备不用借助原生SQL语句或者SQLyogEnt、Navicat这样的建表工具进行数据库的建立,增编削查和数据交互。我想这可能是它牢牢霸占NO.1的一大亮点,在ThinkPHP中则须要我们借助SQL语句或者建表工具去逐步完善数据。
8.1、首先我们须要建立模型:我用的是gitbash。gitbash是Windows下的命令工具,基于msys GNU环境,有git分布式版本掌握工具,紧张运用于git。但是在Laravel里也可以直策应用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表构造的创建(/database/migrations)。
8.2、向goods数据表填充数据,要把稳数据的类型是严格区分的,并且一定要加。添加完后利用php artisan migrate命令完成表的创建。
Schema::create('goods', function (Blueprint $table) {
$table->increments('id')->comment('商品主键');
$table->string('title')->comment('商品的标题');
8.3、假设某个字段不符合哀求或者须要添加字段怎么办?无须担心,从github中pull下项目后在数据表里直接修正,只须要用:
php artisan migrate:refresh
9、ORM
在先容建表时已经利用了创建模型的命令:
php artisan make:model XXX;
Laravel里模型是对面向工具开拓思想最好的诠释,让工具帮我们完成需求。
摘自5.1手册:(Laravel 的 Eloquent ORM 供应了俊秀、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查找数据表内的数据,以及将记录添加到数据表中。)
本人在实际利用中也实实在在的感想熏染到了通过创造模型对数据表操作带来的便利,譬如:批量赋值,跨表查询,删除模型和软删除,模型关联,当然这些在TP框架中也可以利用模型实现。这一点属于仁者见仁智者见智,根据个人喜好而定。
10、session的用法
10.1、ThinkPHP对Session操作进行了封装,并且无需引入就可以利用,Session的启动会在运用初始化的时候自动实行,以是无需手动利用Session::start() 来启动Session。
利用Session类操作和普通办法调用$_SESSION来操作并没有实质不同,只是Session类很多参数可以根据项目配置来灵巧设置,最常用的操作方法示例:
// 检测Session变量是否存在:Session::is_set('name');
// 给Session变量赋值:Session::set('name','value');
// 获取Session变量:Session::get('name');
10.2、Laravel中Session的常用方法:
$request->session()->get('key');//获取session里的某个键名
$request->session()->set('key','default');//设定一个默认值,当指定键名不存在便返回默认值
$request->session()->all();//返回所有数据
session('k'=>$v);//写入session保存数据
以及闪存数据session()->flash()和保留特天命据->keep(['','']);
也可以自定义session驱动。