thinkphp和laravel的區(qū)別是什么,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),瀏陽企業(yè)網(wǎng)站建設(shè),瀏陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,瀏陽網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,瀏陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
區(qū)別:1、Laravel用“return view()”來渲染模版;ThinkPHP用“$this->display()”方式渲染模版。2、post傳值中注意點(diǎn)不同。3、條件判斷語句書寫方式的差異。4、加密方式不同。5、建表方式不同。
本教程操作環(huán)境:windows7系統(tǒng)、Laravel6版、Dell G3電腦。
主要區(qū)別:(thinkPHP更適合國人的編碼習(xí)慣)
1、渲染模版方式的不同
在Laravel框架里,使用return view()來渲染模版;而ThinkPHP里則使用了$this->display()的方式渲染模版。
2、post傳值中注意點(diǎn)不同
在Laravel框架里,由于其考慮到了跨站攻擊,所以如果使用form表單以post方式進(jìn)行傳值時(shí),如果不再form表單中加入{{csrf_field()}}則會(huì)報(bào)出TokenMethodnotfound的語法錯(cuò)誤,而TP框架則需要自己手動(dòng)完成防止跨站攻擊的代碼。
3、條件判斷語句書寫方式的差異
Laravel框架里if else判斷語句和foreach語句,書寫時(shí)必須以@if開頭,以@endif結(jié)尾。如果沒有則報(bào)語法錯(cuò)誤,@foreach @endforeach同理;
而TP框架則和PHP語法規(guī)則使用方式一致,直接用if esle語句判斷和foreach循環(huán)遍歷。
4、加密方式
在TP框架中,我們對用戶名密碼進(jìn)行加密時(shí)使用md5();的方式進(jìn)行加密。但md5的缺點(diǎn)在于其可以逆向破解,而且在同等規(guī)則下同樣的密碼md5加密出的字符串是有可能出現(xiàn)相同的,這就降低其安全性。但在Laravel框架中內(nèi)置了”哈?!盚ash加密單向加密方法,且同樣的參數(shù)加密出的字符串是絕對不會(huì)出現(xiàn)相同的情況,這就提高了安全性。
5、建表
Laravel在數(shù)據(jù)庫建表上有自己獨(dú)立內(nèi)置的結(jié)構(gòu),可以完全不用借助原生SQL語句或者SQLyogEnt、Navicat這樣的建表工具進(jìn)行數(shù)據(jù)庫的建立,增刪改查和數(shù)據(jù)交互。我想這可能是它牢牢占據(jù)NO.1的一大亮點(diǎn),在ThinkPHP中則需要我們借助SQL語句或者建表工具去逐步完善數(shù)據(jù)。
5.1、首先我們需要建立模型:我用的是gitbash。gitbash是Windows下的命令工具,基于msys GNU環(huán)境,有g(shù)it分布式版本控制工具,主要應(yīng)用于git。但是在Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的創(chuàng)建和建表結(jié)構(gòu)的創(chuàng)建(/database/migrations)。
5.2、向goods數(shù)據(jù)表填充數(shù)據(jù),要注意數(shù)據(jù)的類型是嚴(yán)格區(qū)分的,并且一定要加。添加完后使用php artisan migrate命令完成表的創(chuàng)建。
Schema::create(‘goods', function (Blueprint $table) { $table->increments(‘id')->comment(‘商品主鍵'); $table->string(‘title')->comment(‘商品的標(biāo)題');
8.3、假設(shè)某個(gè)字段不符合要求或者需要添加字段怎么辦?無須擔(dān)心,從github中pull下項(xiàng)目后在數(shù)據(jù)表里直接修改,只需要用:
php artisan migrate:refresh
6、Laravel是一個(gè)重路由的框架(5.4),所有的功能都是由路由發(fā)起的,哪怕沒有控制器方法,只要寫了路由就能夠訪問,thinkPHP(3.2),必須要有控制器方法才能正常訪問;
7、laravel具有強(qiáng)大的社區(qū)化擴(kuò)展,(composer擴(kuò)展自動(dòng)加載);
9、laravel具有強(qiáng)大的Blade模版引擎;
9、中間件,Laravel特點(diǎn),可以實(shí)現(xiàn)訪問前后的處理,例如請求和返回,權(quán)限認(rèn)證等;
看完上述內(nèi)容,你們掌握thinkphp和laravel的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!