![第10章 Laravel框架構建動態(tài)網(wǎng)站_第1頁](http://file4.renrendoc.com/view14/M0A/11/0B/wKhkGWewh9uASEW3AABugwQ-0mk663.jpg)
![第10章 Laravel框架構建動態(tài)網(wǎng)站_第2頁](http://file4.renrendoc.com/view14/M0A/11/0B/wKhkGWewh9uASEW3AABugwQ-0mk6632.jpg)
![第10章 Laravel框架構建動態(tài)網(wǎng)站_第3頁](http://file4.renrendoc.com/view14/M0A/11/0B/wKhkGWewh9uASEW3AABugwQ-0mk6633.jpg)
![第10章 Laravel框架構建動態(tài)網(wǎng)站_第4頁](http://file4.renrendoc.com/view14/M0A/11/0B/wKhkGWewh9uASEW3AABugwQ-0mk6634.jpg)
![第10章 Laravel框架構建動態(tài)網(wǎng)站_第5頁](http://file4.renrendoc.com/view14/M0A/11/0B/wKhkGWewh9uASEW3AABugwQ-0mk6635.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章Laravel框架構建動態(tài)網(wǎng)站01Laravel框架配置和安裝02Laravel框架基礎知識03Laravel框架特點1Laravel框架配置和安裝Laravel簡介傳參格式Laravel是一套優(yōu)雅簡介的PHP開發(fā)框架,受歡迎程度非常之高,功能強大,工具齊全。本章學習以laravel5.2.15版本為框架的版本基礎;由于laravel使用較多的php新特性,所以新版本的laravel對PHP的版本要求比較高,這里選擇的laravel5.2.15要求PHP>5.5.9+。
Win系統(tǒng)下推薦使用集成的開發(fā)環(huán)境比如wamp、phpStudy、Xampp都可以,下載安裝的時候需要注意PHP版本,Linux系統(tǒng)下需要編譯安裝,我們這里選擇XAMPP./yuwenbo5/laravel5.2.15.git;下載安裝包后解壓更改名稱(laravel),直接拷貝到環(huán)境根目錄d:/xampp/hodocs中;打開瀏覽器輸入url:localhost/然后回車,出現(xiàn)如下畫面表示安裝成功:安裝包下載安裝Composer是PHP中用來管理依賴(dependency)關系的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer會幫你安裝這些依賴的庫文件。cd到環(huán)境根目錄,使用命令:composercreate-project--prefer-distlaravel/laravel=5.2.15laravelcomposercreate-projectlaravel/laravel項目名稱--prefer-distcomposer安裝2Laravel框架基礎知識主要內容
MVC模式
Laravel路由0102
視圖03模板Blade04
laravel是基于mvc模式的php框架,M——模型層,V——視圖層,C——控制器層;以下為laravel框架的目錄文件,框出來的文件目錄將在后續(xù)中用到。app是應用的核心代碼文件目錄,以后的代碼基本都在這里完成;app/Http/Controller目錄是應用的控制器文件;routes.php是框架的路由文件,負責路由分配和映射;Http下的類文件,比如上面目錄中的User.php、Menu.php文件是應用的模型文件;config目錄是所有應用的配置文件目錄;public是框架的入口文件及靜態(tài)資源文件目錄;resources/views則是應用的視圖文件目錄。MVC模式MVC模式Laravel路由傳統(tǒng)的MVC的URL都是對應應用的控制器及控制器中的方法,laravel中的MVC則是通過路由功能映射到對應的程序(控制器方法),通過路由將用戶的請求發(fā)送到對應的程序進行處理,其作用就是建立url和處理程序之間的映射關系,這樣做有一個好處,對url進行美化只需要修改路由而無需對程序本身進行修改。
laravel中請求類型包括:get、post、put、patch、delete。前面說了route.php是laravel的路由文件,所有的路由映射都要通過編輯route.php文件進行代碼書寫。Laravel路由直接顯示輸出:Route::get('as',['as'=>'ass',function(){echo
route('ass');}]);或:Route::get('as',function(){echo
route('ass');})->name('ass');控制器路由:Route::get('index','IndexController@index')->name('index');
通過輔助函數(shù)route為該命名路由生成URL,可以有第二個參數(shù)。路由群組:共享屬性以數(shù)組的形式參數(shù)傳遞給Route::group方法。路由前綴:['prefix'
=>'admin']
//匹配"/admin"URL命名空間:['namespace'
=>'Admin']//控制器在"App\Http\Controllers\Admin"命名空間下中間件:['middleware'
=>'auth']//使用Auth中間件子域名路由:['domain'
=>'{account}.[](/)']Route::group(['namespace'
=>'Admin'],function(){
});視圖視圖傳值:給視圖傳一個值:return
view('greeting',['name'
=>'James']);或:return
view('greeting')->with('name','James');給admin下的profile傳一個$data數(shù)組值:return
view('file',$data);返回上一個視圖:return
back();跳轉頁面:return
redirect('跳轉的頁面');模板Blade輸出變量:{{$name}}輸出js代碼:{!!$name!!}不解析這個:@{{name}}給一個默認值:{{$nameor
"這是默認值"
}}三元運算符:{{isset($name)?$name:"假就用這個"
}}if:
@if
($str>60)真顯示:@else假顯示:@endifunless:除非/如果不/
除…之外@unless($str>60):除了$str>60的,其他的都顯示@endunless模板Blade循環(huán)for:
@for($i=0;$i<10;$i++){{$i}}@endforforeach:
@foreach
($usersas
$user){{$user->id}}@endforeachforelse:是foreach
的補充,有就顯示,沒有就走下面的@forelse($usersas
$user)有就顯示@empty沒有就走下面的@endforelse模板Blade引入模版:@include('路徑.模版名');include(‘conn.blade.php’)引人內容,要替換的部分:@yield('title')@yield('content')@section('sidebar')Thisisthemastersidebar.@show模板Blade替換內容:
@extends('layouts.app'):先引入要替換的頁面,像父類一樣@section('title','PageTitle')@section('sidebar')@parent
:這個顯示sidebar中默認的內容Thisisappendedtothemastersidebar.@endsection@section('content')Thisismybodycontent.@endsection模板Blade替換內容:
@extends('layouts.app'):先引入要替換的頁面,像父類一樣@section('title','PageTitle')@section('sidebar')@parent
:這個顯示sidebar中默認的內容Thisisappendedtothemastersidebar.@endsection@section('content')Thisismybodycontent.@endsection
Model操作創(chuàng)建model:phpartisanmake:model文件名/userModelmodel的約定:在laravel中約定(非強制),表名叫xxs,復數(shù)形式.類和表名有關系,一般表名去掉s,即為Model的類名.表名的約定默認表名為Model名+s,可能通過的model類的table屬性來指定表名.id的約定:Model默認認為,每張表都有一個叫做id的主鍵,你可以通過primaryKey屬性來指定主鍵列名.
不想要created_at,updated_at字段,可以把model的timestamps屬性設為false。
Model操作繼承自:Illuminate\Database\Eloquent\Model實例化Model:$model=new
App\Xxx();//得到Xx表的Model,且不與表中任何行對應$model=Xxx::find($id);//得到Xx表的Model,且與$id行數(shù)據(jù)對應classXxModelextendsModel{Protected
$table='yourTableName';//指定表名Protected
$primaryKey='Xx_id';//設置主鍵public
$timestamps=false;//去掉created_at,updated_at字段}
Model操作增:public
functionadd(){$msg=new
Msg();//實例化對象$msg->title=$_POST['title'];$msg->content=$_POST[‘content'];return
$msg->save()?'OK'
:'fail';}
Model操作刪:public
functiondel($id){$msg=Msg::find($id);return
$msg->delete()?'ok'
:'fail';}
Model操作查:查單行:find()與first()Msg::find($id)//按id查Msg::where('id','>',3)->first();//按where條件查查多行:all()和get()Msg::all(['列1','列2']);//無條件查所有行.select列1,列2frommsgs;Msg::where('id','>',2)->get(['列1','列2']);//按條件查多行
Model操作改:public
functionupdate($id){if(empty($_POST)){$msg=Msg::find($id);//修改記錄的idreturn
view('msg.up',['msg'=>$msg]);}else
{$msg=Msg::find($id);$msg->title=$_POST['title'];$msg->content=$_POST['content'];return
$msg->save()?'OK'
:'fail';}}
Model操作復雜查詢://select*whereid>2orderbyiddesclimit2,1;Msg::where('id','>',2)->orderBy('id','desc')->skip(2)->take(1)->get();統(tǒng)計Msg::count();//總數(shù)Msg::avg('id');//平均值Msg::min('id');//最小Msg::max('id');//最大Msg::sum('id');//合計分組
//用DB::raw()方法,raw是"裸,不修飾的"意思Goods::groupBy('cat_id')->get(['cat_id',DB::raw('avg(price)')]));
Model操作數(shù)據(jù)庫:引入:use
Illuminate\Support\Facades\DB;測試是否連接成功:$pdo=DB::connection()->getPdo();
dd($pdo);運行Select查詢:DB::select('select*fromuserswhereactive=?',[1]);運行插入語句:DB::insert('insertintousers(id,name)values(?,?)',[1,'Dayle']);運行更新語句:DB::update('updateuserssetvotes=100wherename=?',['John']);運行刪除語句:DB::delete('deletefromuserswhereid=?',[1]);運行一個通用語句:DB::statement('droptableusersname');3
Laravel框架特點
Laravel框架特點1.語法更富有表現(xiàn)力2.高質量的文檔CodeIgniter非常流行原因之一是它有良好的文檔。這對程序員來說是十分方便的。相比之下,Kohana一個在技術上比CI更加優(yōu)秀的框架,但你猜怎么著?大家不在乎Kohana技術有多強,因為Kohana的文檔實在是太糟了。而Laravel有一個非常棒的的社區(qū)支持。Laravel代碼本身的表現(xiàn)力和良好的文檔使PHP程序編寫令人愉快。3.豐富的擴展包Bundle是Laravel中對擴展包的稱呼。它可以是任何東西--大到完整的ORM,小到除錯(debug)工具,僅僅復制&粘貼就能安裝任何擴展包!Laravel的擴展包由世界各地的開發(fā)者貢獻,而且還在不斷增加中。4.開源、托管在GITHUB上Laravel是完全開源的。所有代碼都可以從Github上獲取,并且歡迎你貢獻出自己的力量。
Laravel框架特點4.開源、托管在GITHUB上Laravel是完全開源的。所有代碼都可以從Github上獲取,并且歡迎你貢獻出自己的力量。1)Bundle是Laravel的擴展包組織形式或稱呼。Laravel的擴展包倉庫已經相當成熟了,可以很容易的幫你把擴展包(bundle)安裝到你的應用中。你可以選擇下載一個擴展包(bundle)然后拷貝到bundles目錄,或者通過命令行工具“Artisan”自動安裝。2)在Laravel中已經具有了一套高級的PHPActiveRecord實現(xiàn)--EloquentORM。它能方便的將“約束(constraints)”應用到關系的雙方,這樣你就具有了對數(shù)據(jù)的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查詢構造器(query-builder)的所有方法。3)應用邏輯(ApplicationLogic)可以在控制器(controllers)中實現(xiàn),也可以直接集成到路由(route)聲明中,并且語法和Sinatra框架類似。Laravel的設計理念是:給開發(fā)者以最大的靈活性,既能創(chuàng)建非常小的網(wǎng)站也能構建大型的企業(yè)應用。
Laravel框架特點4)反向路由(ReverseRouting)賦予你通過路由(routes)名稱創(chuàng)建鏈接(URI)的能力。只需使用路由名稱(routename),Laravel就會自動幫你創(chuàng)建正確的URI。這樣你就可以隨時改變你的路由(routes),Laravel會幫你自動更新所有相關的鏈接。5)Restful控制器(RestfulControllers)是一項區(qū)分GET和POST請求邏輯的可選方式。比如在一個用戶登陸邏輯中,你聲明了一個get_login()的動作(action)來處理獲取登陸頁面的服務;同時也聲明了一個post_login()動作(action)來校驗表單POST過來的數(shù)據(jù),并且在驗證之后,做出重新轉向(redirect)到登陸頁面還是轉向控制臺的決定。6)自動加載類(ClassAuto-loading)簡化了類(class)的加載工作,以后就可以不用去維護自動加載配置表和非必須的組件加載工作了。當你想加載任何庫(library)或模型(model)時,立即使用就行了,Laravel會自動幫你加載需要的文件。
Laravel框架特點7)視圖組裝器(ViewComposers)本質上就是一段代碼,這段代碼在視圖(View)加載時會自動執(zhí)行。最好的例子就是博客中的側邊隨機文章推薦,“視圖組裝器”中包含了加載隨機文章推薦的邏輯,這樣,你只需要加載內容區(qū)域的視圖(view)就行了,其它的事情Laravel會幫你自動完成。8)反向控制容器(IoCcontainer)提供了生成新對象、隨時實例化對象、訪問單例(singleton)對象的便捷方式。反向控制(IoC)意味著你幾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防水電工程合同
- 辦公室行政人員聘用合同
- 聘用至退休合同續(xù)簽書
- 小區(qū)智能化系統(tǒng)工程合同書
- 電信行業(yè)通信設備維護服務合同
- 9 種豆子 教學設計-2023-2024學年科學二年級下冊冀人版
- 第6課 從隋唐盛世到五代十國 教學設計-2023-2024學年統(tǒng)編版(2019)高中歷史必修中外歷史綱要上冊
- Unit 6 Nurturing Nature Developing ideas The best job in the world 教學設計 -2024-2025學年高二英語外研版(2019)選擇性必修第一冊
- 石家莊水泥檢查井施工方案
- 小學四年級數(shù)學幾百幾十數(shù)乘以一位數(shù)質量作業(yè)習題大全附答案
- 2025年官方領養(yǎng)兒童策劃協(xié)議書
- 2025年官方策劃完整個人離婚協(xié)議書模板
- 2025年度數(shù)據(jù)備份與恢復合法委托服務合同
- 2025年度跨境電商平臺股權合同轉讓協(xié)議
- 2025年益陽醫(yī)學高等??茖W校高職單招數(shù)學歷年(2016-2024)頻考點試題含答案解析
- 2025年人教版新教材英語小學三年級下冊教學計劃(含進度表)
- GB/T 45083-2024再生資源分揀中心建設和管理規(guī)范
- 山西省2024年中考物理試題(含答案)
- 北京理工大學出版社二年級下冊《勞動》教案
- 相互批評意見500條【5篇】
- 中國食物成分表2018年(標準版)第6版
評論
0/150
提交評論