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

下載本文檔

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

文檔簡介

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

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

3、re-index/name', function ($name) return $name;);也可以設(shè)置可選參數(shù),對于一些可填可不填的可以選擇不填Route:get('store-index/name?', function ($na return $name;);ll) 參數(shù)限制可以使用 where 方法來規(guī)范你的路由參數(shù)格式。where 方法接受參數(shù)名稱和定義參數(shù)約束規(guī)則的正則表達式: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+');匹配多種請求形式假設(shè)我們想讓當前的路由匹配多種形式的請求既想要匹配get請求,又想要匹配post1.指定請求形式2.任意形式都可以路由組路

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

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

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

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

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

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

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

12、ation 表字段類型數(shù)據(jù)庫遷移-修改字段假設(shè)再執(zhí)行了數(shù)據(jù)遷移之后又想對數(shù)據(jù)表進行字段增加、或者重命名等等一系列修改動作首先我們需要引入一個擴展類,默認沒有加載需要我們composer require doctrine/dbal去引入數(shù)據(jù)遷移操作當遷移文件做好的之后,以下幾個命令,執(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: 強制執(zhí)行最新的遷移文件migrate:rollback回退到執(zhí)行遷移前的狀態(tài)migrate:reset 回退到所有遷移之前的初始狀態(tài)migrate:refresh 回退到初始狀態(tài),再次執(zhí)行所有遷移文件Eloquent M-快速上手1.Mm m致。放在哪兒? 命名空間是什么?文件默認放在<project>/app目錄下,命名空間是App .文件也可以自由的放在其他目錄,但請注意命名空間和目錄路徑保持一2.在laravel中約定(非強制),表名叫xxs ,復(fù)數(shù)形式。如用戶(user)表叫users ,(shop

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

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

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

溫馨提示

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

評論

0/150

提交評論