问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

laravel与thinkphp区别是什么

发布网友 发布时间:2023-07-28 18:32

我来回答

1个回答

热心网友 时间:2024-02-26 07:21



1、渲染模版方式的不同
在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驱动。

Gxlcms,大量的免费laravel入门教程,欢迎在线学习!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何通过故事和绘画激发孩子的想象力? 怎么提高孩子在绘画方面的想象力? 哪个牌子的素描纸最好用 1 60g的素描纸等于多少A? 一条高速公路的路基长100千米宽50米这条公路路基占地面积大约多少公顷合... 选择四川大学的原因是什么? 成都哪个学校留学生多 如何验证IPVS是否安装正常 杭州市十三中和杭外初中是考试进入的还是划片进入的?如果是划片需要户口... 怎么关闭余额宝?具体操作步骤是什么? 在thinkphp下,表单提交的文本内容包含单双引号,html标签,该怎么处理... thinkphp有什么功能 大学生如何面对毕业后的迷茫期呢? 大学毕业后怎么度过迷茫期 如何度过毕业迷茫期? 小李的父母都是工程师,2010年3月他们响应国家的号召,夫妻双双参加西部大... 机械商标是第几类 H5+C3如何展示3D效果的商品信息 怎样用H5Canvas实现3D动态Chart图表 清镇到火车北站多少公里 清镇到贵阳北站要多久 抖音里的烟雾视频是怎么做出来的 抖音烟雾怎么拍 清洗机出租,注册商标属于哪一类? 办理租赁注册商标属于哪一类? 梦见别人吃花生是什么意思 156厘米90斤穿多少码衣服烟筒裤 色彩设计哲学的色彩象征 ...系列9无人医院张莞柠密室逃脱绝境系列9无人医院张莞柠详细攻略... 服装直(硬朗、知性、理性)是什么颜色? 梦见黑猫黑狗是什么意思 小米电脑没有摄像头打视频怎么办 电磁阀型号491514Q3 D400Q3 它是什么的品牌呢?又是什么的系列呢?_百 ... 电磁阀2636000-c 是个什么性质的电磁阀 是通用型号还是品牌型号_百度... 昭通工商注册:代办营业执照需要提交哪些资料 昭通工商注册:营业执照代办注册需要什么资料 昭通注册公司:代办注册营业执照需要多少费用 昭通资质代办:个体工商户营业执照怎么办理? 昭通资质代办:个体工商户营业执照办理流程及所需材料 昭通注册公司:代办营业执照价格是多少你有了解过吗 昭通资质代办:注册企业营业执照的流程是怎样的 昭通资质代办:营业执照办理注册的流程以及注意事项 昭通资质代办:注册个人营业执照要什么手续 昭通资质代办:注册公司营业执照该怎么办理 人群穿梭了天桥, 富含霓虹街道, 仿佛时光又回到了年少, 这是那首歌... 流泪了受伤了,心痛了,心碎了,还会复原吗 这是什么歌里的歌词 歌名叫... 不与计较,不与计较因为爱让我们能遇到是什么歌里的歌词 2022烟台元旦漫展活动汇总烟台漫展八月 梦见用棍子打死大鳄鱼的预兆 cp20漫展时间