Laravel 框架

1.路由:通過(guò)路由將請(qǐng)求發(fā)送至處理函數(shù)

2.Laravel是簡(jiǎn)潔優(yōu)雅的PHP web開(kāi)發(fā)框架,具有富于表達(dá)性且簡(jiǎn)潔的語(yǔ)法,易于理解且強(qiáng)大的,提供強(qiáng)大的工具以開(kāi)發(fā)大型健壯的應(yīng)用,具有驗(yàn)證/路由/session/緩存/數(shù)據(jù)庫(kù)遷移工具/單元測(cè)試等常用的工具和功能

3.Laravel版本5.1和5.2需要使用PHP 5.5.9+

4.文件夾分類:app:核心代碼,業(yè)務(wù)邏輯

Http:編寫控制器文件夾

bootsteap:自動(dòng)啟動(dòng)和加載配置

config:配置文件

database:數(shù)據(jù)庫(kù)填充和遷移文件

public:入口,項(xiàng)目靜態(tài)文件(圖片,js等)

resources:視圖及原始的資源文件

views:視圖存放文件夾

storage:編譯后的模板文件,緩存,session等

tests:單元測(cè)試文件夾

cendor:以來(lái)模塊

5.Laravel路由:

(1)路由簡(jiǎn)介:用戶請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)程序進(jìn)行處理;作用是簡(jiǎn)歷url和程序直接的映射;請(qǐng)求類型:get/post/put/patch/delete

(2)基本路由:Route::請(qǐng)求類型('方法名',function(){});

(3)多請(qǐng)求路由:指定請(qǐng)求類型Route::match(['請(qǐng)求類型','請(qǐng)求類型'],'方法名',function(){});不指定請(qǐng)求類型:Route::any('方法名',function(){});

(4)路由參數(shù):Route::請(qǐng)求類型('文件/{參數(shù)}',function(參數(shù)){}); 帶正則Route::請(qǐng)求類型('文件/{參數(shù)}',function(參數(shù)){})->where(['參數(shù)'=>'正則',...]);

(5)路由別名(用route生成別名對(duì)應(yīng)的url):Route::請(qǐng)求類型('文件',['as'=>'別名',function(){}]);

(6)路由群組(針對(duì)多個(gè)群組進(jìn)行設(shè)置):Route::group(['prefix']=>'前綴名',function(){});

(7)路由中輸出視圖:Route::請(qǐng)求類型('view',function(){});

6.Laravel控制器:

(1)新建控制器:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

進(jìn)行處理

}

}

(2)控制器和路由關(guān)聯(lián):

Route::請(qǐng)求類型('路由名稱','控制器名稱@方法名稱');

Route::請(qǐng)求類型('路由名稱',['uses'=>'控制器名稱@方法名稱']);

(3)關(guān)聯(lián)后,路由特性怎么使用:

別名:Route::請(qǐng)求類型('路由名稱',['uses'=>'控制器名稱@方法名稱','as'=>'別名']);

參數(shù)綁定:Route::請(qǐng)求類型('路由名稱/{參數(shù)}',['uses'=>'控制器名稱@方法名稱']); 控制器傳入 參數(shù)

正則限制:Route::請(qǐng)求類型('路由名稱/{參數(shù)}',['uses'=>'控制器名稱@方法名稱'])->where('參數(shù)','限制條件'); 控制器傳入 參數(shù)

7.Laravel視圖(一個(gè)控制器對(duì)應(yīng)一個(gè)文件夾)

(1)新建視圖:

resources/views/文件夾名/文件名

(2)輸出視圖:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

return view('文件名');

}

}

加入變量:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

return view('文件名',['變量名稱'=>'變量值',...]);

}

}

輸出變量:{{變量名稱}}

8.Laravel模型

(1)新建模型:

app/文件名

namespace App;

use Illuminate\Database\Eloquent\Model;

class 模型名稱 extends Model{

public static function 方法名(){

進(jìn)行處理

}

}

(2)模型使用:

控制器中進(jìn)行調(diào)用

9.Laravel數(shù)據(jù)庫(kù)操作(DB facade(原始查找)/查詢構(gòu)造器/Eloquent ORM)

(1)新建數(shù)據(jù)表與連接數(shù)據(jù)庫(kù)

新建數(shù)據(jù)表:使用命令新建數(shù)據(jù)表

連接數(shù)據(jù)庫(kù):config/database.php/mysql方法

.env/修改數(shù)據(jù)庫(kù)配置文件

(2)使用DB facade實(shí)現(xiàn)CURD

第一步: namespace App\Http\Controllers;

class 控制器名 extends Controllers{

public function 方法名(){

進(jìn)行處理(打印另一種方法:dd)

DB::select('sql語(yǔ)句'); 查詢(返回?cái)?shù)組)

DB::insert('sql語(yǔ)句'); 插入(返回布爾值)

DB::update('sql語(yǔ)句'); 修改(返回修改行數(shù))

DB::delete('sql語(yǔ)句'); 刪除(返回刪除行數(shù))

}

}

第二步: Route::請(qǐng)求類型('路由名稱',['uses'=>'控制器名稱@方法名稱']);

10.Laravel查詢構(gòu)造器:

(1)簡(jiǎn)介及新增數(shù)據(jù):

簡(jiǎn)介:Laravel查詢構(gòu)造器提供方便/流暢的接口,用來(lái)建立及執(zhí)行數(shù)據(jù)庫(kù)查找語(yǔ)法;使用PDO參數(shù)綁定,以保護(hù)應(yīng)用程序免于SQL注入因此傳入的參數(shù)不需額外轉(zhuǎn)義特殊字符;基本可以滿足所有數(shù)據(jù)庫(kù)操作,在所有支持的數(shù)據(jù)庫(kù)系統(tǒng)上都可以執(zhí)行;

新增:

public function 方法名稱(){

DB::table('表名')->insert(['字段名'=>'字段值',...]); 插入(返回布爾值)

DB::table('表名')->insertGetId(['字段名'=>'字段值',...]) 插入獲取自增ID

DB::table('表名')->insert(['字段名'=>'字段值',...],['字段名'=>'字段值',...],...); 插入多條數(shù)據(jù)

}

(2)修改數(shù)據(jù):

更新為制定內(nèi)容:

public function 方法名稱(){

DB::table('表名')->where(條件)->update(['字段名'=>'字段值',...]); 修改(返回?cái)?shù)量)

}

自增和自減:

public function 方法名稱(){

DB::table('表名')->increment('字段名'); 修改自增(返回行數(shù),默認(rèn)1)

DB::table('表名')->increment('字段名',數(shù)量); 修改自增(返回行數(shù))

DB::table('表名')->decrement('字段名'); 修改自增(返回行數(shù),默認(rèn)1)

DB::table('表名')->decrement('字段名',數(shù)量); 修改自增(返回行數(shù))

加入條件:DB::table('表名')->where(條件)->自增自減('字段名'); 修改(返回行數(shù))

DB::table('表名')->where(條件)->自增自減('字段名',數(shù)量,['字段名'=>'字段值']); 修改多個(gè)字段(返回行數(shù))

}

(3)刪除數(shù)據(jù):

delete:

public function 方法名稱(){

DB::table('表名')->where(條件)->delete(); 刪除(返回行數(shù))

}

truncate:

public function 方法名稱(){

DB::table('表名')->truncate(); 清空數(shù)據(jù)表()

}

(4)查詢數(shù)據(jù):

get():

DB::table('表名')->get(); //獲取所有數(shù)據(jù)

first():

DB::table('表名')->first(); //獲取第一條數(shù)據(jù)

where():

DB::table('表名')->where(條件)->get(); //獲取要求數(shù)據(jù)

DB::table('表名')->whereRaw(多個(gè)條件)->get(); //獲取多個(gè)條件要求數(shù)據(jù)

pluck():

DB::table('表名')->pluck('字段名'); //獲取結(jié)果集中指定字段

lists(指定某個(gè)鍵為下標(biāo)):

DB::table('表名')->lists('字段名','字段名'); //獲取結(jié)果集中指定字段

select():

DB::table('表名')->select('字段名','字段名',...)->get(); //返回指定字段名的值

chunk():

DB::table('表名')->chunk(數(shù)量,function(變量名){}); //查找內(nèi)容分段顯示

(5)聚合函數(shù):

count(統(tǒng)計(jì)表記錄數(shù)):

public function 方法名稱(){

DB::table('表名')->count(); //返回?cái)?shù)量

}

max(返回最大值):

public function 方法名稱(){

DB::table('表名')->max('字段名'); //返回?cái)?shù)量

}

min(返回最小值):

public function 方法名稱(){

DB::table('表名')->min('字段名'); //返回?cái)?shù)量

}

avg(返回平均數(shù)):

public function 方法名稱(){

DB::table('表名')->avg('字段名'); //返回?cái)?shù)量

}

sum(返回和):

public function 方法名稱(){

DB::table('表名')->sum(); //返回?cái)?shù)量

}

11.Laravel數(shù)據(jù)庫(kù)操作 ORM

(1)ORM簡(jiǎn)介/模型的建立及查詢數(shù)據(jù):

簡(jiǎn)介:優(yōu)美簡(jiǎn)潔的ActiveRecord實(shí)現(xiàn),用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作;每個(gè)數(shù)據(jù)表中有一個(gè)與之對(duì)應(yīng)的模型用于和數(shù)據(jù)表交互;

模型的建立:

namespace App;

use Illuminate\Database\Eloquent\Model;

class 模型名 extends Model{

protected $table = '表名'; //ID主鍵

protected $primaryKey = '主鍵名'; //指定主鍵

}

ORM查詢:

all():

public function 方法名稱(){

模型名稱::all(); //返回集合

}

find():

public function 方法名稱(){

模型名稱::find(); //返回集合

}

findOrFail(根據(jù)主鍵查找,沒(méi)有拋出異常):

public function 方法名稱(){

模型名稱::findOrFail(); //返回集合

}

查詢構(gòu)造器在ORM中的使用:

public function 方法名稱(){

模型名稱::get(); //返回集合

}

(2)ORM新增數(shù)據(jù)/自定義時(shí)間戳/及批量賦值:

模型新增數(shù)據(jù)(自定義時(shí)間戳):

public function 方法名稱(){

new 模型名稱();

模型變量->屬性名稱=屬性值;

模型變量->save(); //返回布爾值‘

return time(); //獲取時(shí)間,已轉(zhuǎn)換

}

模型Create方法新增數(shù)據(jù)(批量賦值,在模型中添加批量賦值的字段):

public function 方法名稱(){

模型名稱::create(['變量名'=>'變量值'],...);

模型名稱::firstOrCreate(['變量名'=>'變量值']); //以屬性查找用戶,沒(méi)有則新增

模型名稱::firstOrNew(['變量名'=>'變量值']); //以屬性查找,沒(méi)有則新建實(shí)例,需要保存則調(diào)用save方法

}

(3)ORM修改數(shù)據(jù):

模型更新:

public function 方法名稱(){

模型名稱::find(主鍵ID);

模型變量->變量名 = '變量值'; //布爾值

}

查詢語(yǔ)句批量更新:

public function 方法名稱(){

模型名稱::where(條件)->update(['變量名'=>'變量值'],...);

}

(4)ORM刪除數(shù)據(jù):

模型刪除:

public function 方法名稱(){

模型名稱::find(主鍵ID);

模型變量->delete(); //布爾值

}

主鍵值刪除:

public function 方法名稱(){

模型名稱::destroy(主鍵ID值); //影響行數(shù)

模型名稱::destroy(主鍵ID值,...); //影響行數(shù)

模型名稱::destroy([主鍵ID值,...]); //影響行數(shù)

}

條件刪除:

public function 方法名稱(){

模型名稱::where(條件)->delete(); //影響行數(shù)

}

12.Laravel Blade模板引擎

簡(jiǎn)介及模板繼承的使用:

簡(jiǎn)介:簡(jiǎn)單強(qiáng)大的模板引擎;不限制在視圖中使用原生PHP代碼;Blade視圖頁(yè)面被編譯成原生PHP代碼并緩存起來(lái),除非模板文件被修改,否則不會(huì)重新編譯;

繼承:

理由:維護(hù)方便;編寫方便;

section:(定義視圖片段,可擴(kuò)展)

public function 方法名稱(){

return view('模板路徑');

}

yield:(定義視圖片段,不可擴(kuò)展)

@yield

extends:

@extends('繼承路徑')

parent:

@section('重寫路徑');

@parent //父模板

內(nèi)容

@stop

基礎(chǔ)語(yǔ)法及include的使用:

模板輸出變量:

{{變量名稱}}

模板調(diào)用PHP:

{{代碼}}

原樣輸出:

@{{變量}}

模板注釋:

{{--? --}}

include使用:

@include('路徑',傳值);

流程控制:

if:

@if(條件)

輸出

@elseif(條件)

輸出

@else

輸出

@endif

unless(相當(dāng)于if的取反):

@unless(條件)

輸出

@endunless

for:

@for(條件($i))

輸出

@endfor

foreach:

@foreach(變量名稱 as 變量名稱)

{{變量名稱->字段名}}

@endforeach

@forelse(變量名稱 as 變量名稱)

{{變量名稱->字段名}}

@empty

輸出

@endforelse

模板中的URL(常用url/route,方便):

*url(路由名稱生成):

模板:{{url('路有名')}}

action(指定控制器及方法名):

模板:{{action('控制器名@方法名')}}

*route(路由別名生成):

模板:{{route('別名')}}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容