Laravel學習教程之從入口到輸出過程詳解
本文主要給大家介紹了關(guān)于Laravel從入口到輸出過程的相關(guān)內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
I. 預(yù)備知識
Laravel 目錄
/path/to
后面簡稱 Laravel
Web 目錄
Laravel/public
后面簡稱 Web
入口文件
Web/index.php
II. 過程詳解
范例: http://la.com/test/yueshu/female/20?name=chenxuelong
1. 定義 web 路由
文件路徑:
Laravel/routes/web.php
修改如下:
Route::get('/test/{name}/{sex}/{age}' , 'TestController@test')
2. 定義中間件
2.1 中間件路徑:
Laravel/app/Http/Middleware
2.2 新建中間件 Test.php:
namespace App\Http\Middleware; use Closure; class Test { /** * 必須返回響應(yīng)(response) */ public function handle($request , Closure $next){ // 在處理請求之前做些什么... $response = $next($request); // 在處理請求之后做些什么 return $response; } /** * 中間件處理完畢后,做些什么 */ public function terminate($request , $response){ // 中間件處理完畢后,做些什么.... } }
2.3 注冊中間件
中間件配件文件路徑:
Laravel/app/Http/Kernel.php
在 routeMiddleware 鍵名下新增:
'Test' => \App\Http\Middleware\Test::class
4. 表單驗證(請求)
文件存放目錄:
Laravel/app/Http/Requests
新建 FormValidate.php 驗證類:
/** * 驗證不通過時,通過 header 中的 referer 重定向到 * 上一頁 */ namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class FormValidate extends FormRequest { // 是否經(jīng)過授權(quán)的訪問 public function authorize(){ return true; } // 驗證規(guī)則 public function rules(){ /** * required 表示必須 * max:255 最大長度 255 */ return [ 'name' => 'required|max:255' ]; } }
5. 模型
文件路徑:
Laravel/app
新建模型 Test.php
namespace App; use Illuminate\Database\Eloquent\Model; class Test extends Model { // 獲取某張表的所有數(shù)據(jù)(查詢構(gòu)造器) public function get($table){ \DB::table($table)->get(); } // 獲取(原生 sql) public function select($sql , $params){ \DB::select($sql , $params); } // 插入(原生 sql) public functioin insert($sql , $params){ \DB::insert($sql , $params); } // 更新(原生 sql) public function update($sql , $params){ \DB::update($sql , $params); } // 刪除(原生 sql) public function delete($sql , $params){ \DB::delete($sql , $params); } // 執(zhí)行通用 sql(原生 sql) public function statement($sql , $params){ \DB::statement($sql , $params); } // 事務(wù) public function transaction($sql , callable $callback){ \DB::transaction($sql , $callback): } // 手動開啟事務(wù) public function beginTransaction(){ \DB::beginTransaction(); } // 手動回滾 public function rollBack(){ \DB::rollBack(); } // 提交 public function commit(){ \DB::commit(); } }
6. 控制器
控制器路徑:
Laravel/app/Http/Controllers
新建控制器 TestController.php
namespace App\Http\Controllers; use App\Http\Controllers\Controller; // 引入請求驗證類 use App\Http\Requests\FormValidate; /* 可選注入模型類(分層) * 這邊引入了一個 Test 模型類 */ use App\Test; class TestController extends Controller { // 構(gòu)造器(可以添加中間件 或 注入) function __construct(Test $test){ // 添加先前注冊的中間件 $this->middleware('Test'); // 注入模型類 $this->test = $test; } /** * 路由中設(shè)置的動作名稱 * 通過類型提示,引入請求驗證 */ public function test(FormValidate $request , $name , $sex , $age){ // 通過驗證的請求..... $data = []; if (view()->exists('test')) { view('test' , $data); } else { exit('模板文件不存在....'); } } }
7. 視圖
視圖路徑:
Laravel/resource/views
新建 test.blade.php 視圖文件
<h1>Laravel 從入口到輸出解析完畢!</h1>
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Laravel框架源碼解析之反射的使用詳解
- Laravel源碼解析之路由的使用和示例詳解
- 通過源碼解析Laravel的依賴注入
- 源碼分析 Laravel 重復(fù)執(zhí)行同一個隊列任務(wù)的原因
- Laravel框架數(shù)據(jù)庫CURD操作、連貫操作總結(jié)
- PHP開發(fā)框架Laravel數(shù)據(jù)庫操作方法總結(jié)
- Laravel框架表單驗證詳解
- Laravel框架中擴展函數(shù)、擴展自定義類的方法
- Laravel框架路由配置總結(jié)、設(shè)置技巧大全
- PHP的Laravel框架中使用消息隊列queue及異步隊列的方法
- PHP框架Laravel插件Pagination實現(xiàn)自定義分頁
- Laravel 5框架學習之向視圖傳送數(shù)據(jù)
- Laravel框架源碼解析之入口文件原理分析
相關(guān)文章
詳解PHP中curl_multi并發(fā)的實現(xiàn)
這篇文章主要介紹了詳解PHP中curl_multi并發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06thinkPHP實現(xiàn)MemCache分布式緩存功能
這篇文章主要介紹了thinkPHP實現(xiàn)MemCache分布式緩存功能的方法,結(jié)合實例形式分析了thinkPHP通過修改CacheMemcache.class.php源文件實現(xiàn)分布式緩存功能的具體實現(xiàn)技巧,需要的朋友可以參考下2016-03-03php面向?qū)ο蠡A(chǔ)詳解【星際爭霸游戲案例】
這篇文章主要介紹了php面向?qū)ο蠡A(chǔ),結(jié)合星際爭霸游戲案例詳細分析了PHP面向?qū)ο箢?、繼承、重載、接口等相關(guān)概念與使用技巧,需要的朋友可以參考下2020-01-01