框架內(nèi)核班路由控制器模板快速入門(mén)_第1頁(yè)
框架內(nèi)核班路由控制器模板快速入門(mén)_第2頁(yè)
框架內(nèi)核班路由控制器模板快速入門(mén)_第3頁(yè)
框架內(nèi)核班路由控制器模板快速入門(mén)_第4頁(yè)
框架內(nèi)核班路由控制器模板快速入門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、框架內(nèi)核班-laravel快速入門(mén)第一課教育-peter主講:進(jìn)取之心敬畏之心利他之心感恩之心赤誠(chéng)之心孝悌之心laravel的基本運(yùn)行流程路由器一、路由器如何調(diào)用器所有 Laravel 路由都定義在位于 routes 目錄下的路由文件中,這些文件通過(guò)框架自動(dòng)加載。routes/web.php 文件定義了web界面的路由,這些路由被分配了web中間件組,從而可以提供session和csrf防護(hù)等功能。routes/api.php 中的路由是無(wú)狀態(tài)的,被分配了 api 中間件組。對(duì)大多數(shù)應(yīng)用而言,都是從 routes/web.php 文件開(kāi)始定義路由。路由器用法在上面代碼的代碼中,我們?yōu)?get

2、方法傳遞了兩個(gè)參數(shù),第一個(gè)參數(shù)指明了URL,第二個(gè)參數(shù)指明了處理該 URL 的個(gè)路由將會(huì)響應(yīng) GET 請(qǐng)求,并將請(qǐng)求上器動(dòng)作或者是閉包。get 表明這到指定的器動(dòng)作或應(yīng)用到閉包http請(qǐng)求方法在 Laravel 中我們較為常用的幾個(gè)基本的 HTTP 操作分別為 GET、POST、PATCH、DELETE。GET 常用于頁(yè)面POST 常用于數(shù)據(jù)提交PATCH 常用于數(shù)據(jù)更新DELETE 常用于數(shù)據(jù)刪除這里先了解下有個(gè)大概印象有一些請(qǐng)求方法是不被瀏覽器支持,后面我們會(huì)具體的操作,我們先學(xué)習(xí)下路由參數(shù)傳遞在頁(yè)面時(shí)常常需要傳遞參數(shù),參數(shù)的傳遞也可以在路由當(dāng)中進(jìn)行傳遞Route:get('sto

3、re-index/name', function ($name) return $name;);也可以設(shè)置可選參數(shù),對(duì)于一些可填可不填的可以選擇不填Route:get('store-index/name?', function ($na return $name;);ll) 參數(shù)限制可以使用 where 方法來(lái)規(guī)范你的路由參數(shù)格式。where 方法接受參數(shù)名稱(chēng)和定義參數(shù)約束規(guī)則的正則表達(dá)式:Route:get('user/name', function ($name) )->where('name', 'A-Za-z+

4、9;); Route:get('user/id', function ($id) )->where('id', '0-9+');Route:get('user/id/name', function ($id, $name) )->where('id' => '0-9+', 'name' => 'a-z+');匹配多種請(qǐng)求形式假設(shè)我們想讓當(dāng)前的路由匹配多種形式的請(qǐng)求既想要匹配get請(qǐng)求,又想要匹配post1.指定請(qǐng)求形式2.任意形式都可以路由組路

5、由組共享路由屬性,命名空間、前綴、中間件等,我們沒(méi)有必要為每個(gè)路由單獨(dú)設(shè)置共有屬性,共有屬性會(huì)以數(shù)組的形式放到 Route:group 方法的第一個(gè)參數(shù)中php artisan 命令簡(jiǎn)單使用Artisan 是 Laravel令行接口的名稱(chēng),它提供了許多實(shí)用令來(lái)幫助你開(kāi)發(fā) Laravel 應(yīng)用,它由強(qiáng)大的 Symfony Console 組件所驅(qū)動(dòng)。我們可以利用artisan幫助我們創(chuàng)建創(chuàng)建,更加方便、節(jié)省時(shí)間想要查看所有可用的 Artisan 命令,可使用 list 命令:php artisan list每個(gè)命令都可以用 help 指令顯示命令描述及命令參數(shù)和選項(xiàng)。想要查看幫助界面,只需要在命

6、令前加上 help 就可以了: php artisan helpphp artisan make:controller器模型等文件,不需要我們手動(dòng)php artisan make:controller -plain name生成空白的路由器與器在路由表當(dāng)中可以指定哪一個(gè)指定的器而不是一個(gè)閉包器放在<project>/app/Http/Controllers目錄下文件名: Xx器Controller.php例: UserController.php注意: 單詞首字母大寫(xiě)大駝峰規(guī)則 可以利用artisan命令創(chuàng)建器器類(lèi)叫什么?命名空間叫什么?繼承自誰(shuí)?類(lèi)叫XxController命名空

7、間是 AppHttpControllersweidian繼承自AppHttpControllersController器與視圖器中指定渲染某個(gè)視圖,則需要使用到 view 方法,view 方法接收兩要在個(gè)參數(shù),第一個(gè)參數(shù)是視圖的路徑名稱(chēng),第二個(gè)參數(shù)是與視圖綁定的數(shù)據(jù)Blade 模板Blade 是 Laravel 中提供的一套模板引擎,在 Blade 視圖中我們可以使用Laravel 為這套引擎定義的一些默認(rèn)方法,并完全兼容 PHP 語(yǔ)法的書(shū)寫(xiě)。在項(xiàng)目運(yùn)行時(shí),Laravel 會(huì)把所有的 Blade 視圖進(jìn)行編譯緩存成普通的 PHP 代碼,因此你不必當(dāng)心 Blade 會(huì)對(duì)應(yīng)用產(chǎn)生負(fù)擔(dān)。通用視圖的創(chuàng)

8、建我們發(fā)現(xiàn)我們的視圖文件,有很多代碼都是重復(fù)的,導(dǎo)致代碼變得不夠靈活、簡(jiǎn)潔。因此我們需要對(duì)頁(yè)面進(jìn)行重構(gòu),把多余的代碼從視圖中獨(dú)創(chuàng)建一個(gè)默認(rèn)視圖來(lái)進(jìn)行存放通用代碼。出來(lái),單其中yield('content') 表示該占位區(qū)域?qū)⒂糜陲@示 content 區(qū)塊的內(nèi)容,而content 區(qū)塊的由繼承自 default 視圖的子視圖定義。子視圖如何繼承我們使用了 extends 并通過(guò)傳參來(lái)繼承父視圖 layouts/master.blade.php 的視圖模板。extends('layouts.master)使用 section 和 stop 代碼來(lái)填充父視圖的 content

9、 區(qū)塊,所有包含在section 和 stop 中的代碼都將入到父視圖的 content 區(qū)塊。yield的第二個(gè)參數(shù)現(xiàn)在父視圖的代碼已經(jīng)嵌入到子視圖里面,但是還有一點(diǎn)不足的地方,就是所有的標(biāo)題名字都是固定的。因此我們接下來(lái)要做的就是進(jìn)行優(yōu)化,讓不同頁(yè)面顯示不同的標(biāo)題。頁(yè)面標(biāo)題注意的是,當(dāng) section 傳遞了第二個(gè)參數(shù)時(shí),便不需要再通過(guò) stop 標(biāo)識(shí)來(lái)告訴 Laravel 填充區(qū)塊會(huì)在具體哪個(gè)位置結(jié)束。數(shù)據(jù)庫(kù)遷移-migration1.什么是數(shù)據(jù)庫(kù)遷移?在 Laravel 中,我們使用 數(shù)據(jù)庫(kù)遷移 來(lái)管理數(shù)據(jù)庫(kù)表結(jié)構(gòu),遷移就像是數(shù)據(jù)庫(kù)中的版本,它讓團(tuán)隊(duì)成員之間能夠輕松的修改跟共享應(yīng)用程序

10、的數(shù)據(jù)庫(kù)結(jié)構(gòu),而不用擔(dān)心并行更新數(shù)據(jù)結(jié)構(gòu)而造成等問(wèn)題。同時(shí)也讓Laravel 項(xiàng)目的部署變得很方便。不僅如此Migration 建表要比直接手動(dòng)創(chuàng)建表或者 .sql 文件具備額外的管理數(shù)據(jù)庫(kù)的功能,如:/重置/更新等數(shù)據(jù)庫(kù)遷移-migration總結(jié)遷移的好處如下:多人并行開(kāi)發(fā); 代碼版本管理; 如:/重置/更新等;數(shù)據(jù)庫(kù)版本兼容多種數(shù)據(jù)庫(kù)系統(tǒng);部署方便。所有創(chuàng)建的遷移文件都被統(tǒng)一放在 database/migrations 文件夾里。打開(kāi)該文件夾我們可以看到,Laravel 已默認(rèn)為我們創(chuàng)建好了兩個(gè)遷移文件:數(shù)據(jù)庫(kù)遷移-migration創(chuàng)建可以通過(guò)命令行創(chuàng)建數(shù)據(jù)庫(kù)遷移文件,遷移文件將會(huì)被放

11、置在php artisan make:migration create_agent_table-create=agentsphp artisan make:migration update_to_agents-table=agents-create=xx表,則該類(lèi)的up()中調(diào)用Schema:create() ,即創(chuàng)建表。-table=xx表,則該類(lèi)的up()中調(diào)用Schema:table() ,即修改表。數(shù)據(jù)庫(kù)遷移-migration遷移結(jié)構(gòu)一個(gè)遷移類(lèi)會(huì)包含兩個(gè)方法: up 和 down 。 up 方法可為數(shù)據(jù)庫(kù)添加新的數(shù)據(jù)表、字段或索引,而 down 方法則是 up 方法的逆操作。migr

12、ation 表字段類(lèi)型數(shù)據(jù)庫(kù)遷移-修改字段假設(shè)再執(zhí)行了數(shù)據(jù)遷移之后又想對(duì)數(shù)據(jù)表進(jìn)行字段增加、或者重命名等等一系列修改動(dòng)作首先我們需要引入一個(gè)擴(kuò)展類(lèi),默認(rèn)沒(méi)有加載需要我們composer require doctrine/dbal去引入數(shù)據(jù)遷移操作當(dāng)遷移文件做好的之后,以下幾個(gè)命令,執(zhí)行遷移文件.php artisan migratephp artisan migrate:rollback php artisan migrate:reset php artisan migrate:refresh php artisan migrate:status php artisan migrate:ins

13、tall migrate: 執(zhí)行所有遷移文件migrate -force: 強(qiáng)制執(zhí)行最新的遷移文件migrate:rollback回退到執(zhí)行遷移前的狀態(tài)migrate:reset 回退到所有遷移之前的初始狀態(tài)migrate:refresh 回退到初始狀態(tài),再次執(zhí)行所有遷移文件Eloquent M-快速上手1.Mm m致。放在哪兒? 命名空間是什么?文件默認(rèn)放在<project>/app目錄下,命名空間是App .文件也可以自由的放在其他目錄,但請(qǐng)注意命名空間和目錄路徑保持一2.在laravel中約定(非強(qiáng)制),表名叫xxs ,復(fù)數(shù)形式。如用戶(hù)(user)表叫users ,(shop

14、)表叫agents,類(lèi)和表名有關(guān)系,一般表名去掉s ,即為M的類(lèi)名.Eloquent M-創(chuàng)建定義模型,使用artisan命令創(chuàng)建模型php artisan make:mShop個(gè) 數(shù)據(jù)庫(kù)遷移,可以使用 -migration當(dāng)你或 -m 選項(xiàng):個(gè)模型時(shí)想要順便php artisan make:mweidian/Shop-mm的約定1.表名的約定 默認(rèn)表名為M 表名名+s ,可能通過(guò)的m類(lèi)的table屬性來(lái)指定protected $table = 'yourTableName'2.id的約定 M默認(rèn)認(rèn)為,每張表都有一個(gè)叫做id的主鍵,你可以通過(guò)primaryKey屬性來(lái)指定主鍵列

15、名.protected $primaryKey = 'Xx_id'3.created_at ,updated_at字段 M默認(rèn)有這2個(gè)字段,且在更新行時(shí),會(huì)自動(dòng)幫你更新這兩個(gè)字段. 如果不想這樣,甚至不想要這2個(gè)字段,可以把m timestamps屬性設(shè)為falsepublic $timestamps = false;的Laravel 數(shù)據(jù)庫(kù)-數(shù)據(jù)填充有時(shí)候我們需要一些測(cè)試數(shù)據(jù)的時(shí)候,就只能手動(dòng)的一條條的往里面添加這樣太浪費(fèi)時(shí)間了,laravel給我們提供了非常方便的數(shù)據(jù)填充功能Laravel 可以用 seed 類(lèi)輕松地為數(shù)據(jù)庫(kù)填充測(cè)試數(shù)據(jù)。所有的 seed 類(lèi)都存放在 dat

16、abase/seeds 目錄下 可以利用artisan 創(chuàng)建這個(gè)命令php artisan make:seederAgentsTableSeeder利用Faker開(kāi)源庫(kù)幫助我們完成數(shù)據(jù)的填充,F(xiàn)aker當(dāng)中有非常多的函數(shù)可供使用數(shù)據(jù)填充關(guān)系Laravel 數(shù)據(jù)庫(kù)-數(shù)據(jù)填充創(chuàng)建多條數(shù)據(jù)的填充,在factories文件下有個(gè)使用模型工廠MFactory.php的文件可以定義數(shù)據(jù)到模型當(dāng)中define 方法中第一個(gè)參數(shù)表示關(guān)聯(lián)shops模型類(lèi),第二個(gè)參數(shù)傳入的是$faker,Faker是一個(gè)開(kāi)源類(lèi)庫(kù),主要用于些測(cè)試數(shù)據(jù),比如號(hào)碼,人名,IP地址等等,這里L(fēng)aravel內(nèi)置了Faker,因此可以直接使用.Laravel 數(shù)據(jù)庫(kù)-數(shù)據(jù)填充定義了模型之后我們需要回到創(chuàng)建的數(shù)據(jù)填充文件,定義運(yùn)行哪個(gè)模型,以及創(chuàng)建多少條數(shù)據(jù)利用factory方法,為某個(gè)模型創(chuàng)建多條數(shù)據(jù)然后利用artisan命令運(yùn)行填充php artisan db:seed-class=UsersTableSeederM的操作-增刪改查1.普通增加,直接使用save方法M的操作-批量賦值save方法雖然可以用來(lái)更新,但是用save方法那樣一個(gè)一個(gè)的設(shè)置屬性值, 如果模型屬性很多的話(huà),使用save簡(jiǎn)直是噩夢(mèng)。我們可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論