首页 php框架 Laravel laravel与thinkphp区别是什么

laravel与thinkphp区别是什么

Nov 11, 2019 am 10:56 AM
laravel thinkphp 区别

laravel与thinkphp区别是什么

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驱动。

php中文网,大量的免费laravel入门教程,欢迎在线学习!

以上是laravel与thinkphp区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1604
29
PHP教程
1509
276
如何在Laravel中实施推荐系统? 如何在Laravel中实施推荐系统? Aug 02, 2025 am 06:55 AM

创建referrals表记录推荐关系,包含推荐人、被推荐人、推荐码及使用时间;2.在User模型中定义belongsToMany和hasMany关系以管理推荐数据;3.用户注册时生成唯一推荐码(可通过模型事件实现);4.注册时通过查询参数捕获推荐码,验证后建立推荐关系并防止自荐;5.当被推荐用户完成指定行为(如下单)时触发奖励机制;6.生成可分享的推荐链接,可使用Laravel签名URL增强安全性;7.在仪表板展示推荐统计信息,如总推荐数和已转化数;必须确保数据库约束、会话或Cookie持久化、

以太坊,超越比特币的区块链平台,优势与创新盘点 以太坊,超越比特币的区块链平台,优势与创新盘点 Aug 06, 2025 pm 11:57 PM

以太坊通过其图灵完备的智能合约、EVM虚拟机和Gas机制,构建了超越比特币的可编程区块链平台,支持DeFi、NFT等多元应用生态;其核心优势包括丰富的DApp生态、强大的可编程性、活跃的开发者社区和跨链互操作性;当前正通过以太坊2.0升级实现从PoW到PoS的共识转型,引入信标链、验证者机制和惩罚制度,提升能效、安全性与去中心化程度;未来将依托分片技术实现数据分片与并行处理,大幅提高吞吐量;同时Rollup技术作为Layer 2方案已广泛应用,Optimistic Rollup和ZK-Rollu

数字货币btc怎么获取?btc和数字货币的区别有哪些? 数字货币btc怎么获取?btc和数字货币的区别有哪些? Aug 01, 2025 pm 11:15 PM

获取BTC的主要途径有4种:1、通过币安、OK、火币、Gate.io等中心化交易平台注册并用法币或其他数字资产兑换;2、参与P2P平台直接与个人交易,需注意对手方信用风险;3、提供商品或服务接受BTC作为支付报酬;4、参与空投、竞赛等平台奖励活动获取少量BTC。BTC与数字货币的核心区别在于:1、BTC是数字货币的一种,属于种属关系;2、BTC采用工作量证明(PoW)机制,而其他数字货币可能使用权益证明(PoS)等多种技术;3、BTC强调“数字黄金”的价值储存功能,其他数字货币可能侧重支付效率或

Laravel的存储库合同是什么? Laravel的存储库合同是什么? Aug 03, 2025 am 12:10 AM

Repository模式是一种设计模式,用于解耦业务逻辑与数据访问逻辑。1.它通过接口(Contract)定义数据访问方法;2.具体操作由Repository类实现;3.控制器通过依赖注入使用接口,不直接接触数据源;4.优势包括代码整洁、可测试性强、便于维护和团队协作;5.适用于中大型项目,小型项目可直接使用模型。

从区块链到加密货币,基础概念全解析 从区块链到加密货币,基础概念全解析 Aug 06, 2025 pm 11:51 PM

区块链是一种分布式、去中心化的数字账本技术,其核心原理包括:1. 分布式账本,确保数据在所有节点上同步保存;2. 加密技术,通过哈希值链接区块,保障数据不可篡改;3. 共识机制,如PoW或PoS,确保节点间对交易达成一致;4. 去中心化,消除单点控制,增强抗审查性;5. 智能合约,实现自动化执行的协议。加密货币是基于区块链发行的数字资产,运作流程为:1. 用户发起交易并进行数字签名;2. 交易被广播至网络;3. 矿工或验证者验证交易有效性;4. 多笔交易被打包成新区块;5. 通过共识机制确认新区

如何在Laravel雄辩中使用访问者和突变器? 如何在Laravel雄辩中使用访问者和突变器? Aug 02, 2025 am 08:32 AM

conscortorSandMutatorsInlaravel'SeloquentormallowyOutoFormAtormanIpulateModeModeLattributesWhenRetRievorvingOrstTingValues.1.useaccessorstocustomizeattributeretributeretrieval,sueascaScapapitalizingfirst_namevirst_nameviagetFirstnameAtTeameAtTeameAtTeameAtTeameAtTeameAttribute($ value)($ value)

Blockstream推出Simplicity,为以太坊(ETH)Solidity带来全新替代方案 Blockstream推出Simplicity,为以太坊(ETH)Solidity带来全新替代方案 Aug 06, 2025 pm 08:45 PM

目录针对不同架构的差异化路径专用智能合约编程语言的崛起‍由AdamBack领军的Blockstream正式推出了专为比特币设计的原生智能合约语言Simplicity,为以太坊的Solidity提供了全新的竞争选择。作为比特币二层网络Liquid的缔造者,Blockstream在加密领域拥有深厚背景,其领导者AdamBack更是比特币发展史上的关键人物。此次发布的Simplicity语言,旨在为比特币生态引入更强的可编程能力。根据该公司周四向Cointelegraph透露的消息,Simplicit

如何在Laravel雄辩中使用子征服? 如何在Laravel雄辩中使用子征服? Aug 05, 2025 am 07:53 AM

laravelleloquentsuportsubqueriesInSelect,从哪里,andorderbyClauses启用Feflexibledataretievalwithoutrawsql; 1.UseselectSub()toaddcompentedColumnSlumnsLikePostCountCountCountCountCountPeruser; 2.Usefromsub; 2.usefromsub; 2.Usefromsub orclosolusoblesoblesoboledInfom()

See all articles