Laravel學習教程之從入口到輸出過程詳解
本文主要給大家介紹了關于Laravel從入口到輸出過程的相關內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
I. 預備知識
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 {
/**
* 必須返回響應(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);
}
// 事務
public function transaction($sql , callable $callback){
\DB::transaction($sql , $callback):
}
// 手動開啟事務
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;
}
/**
* 路由中設置的動作名稱
* 通過類型提示,引入請求驗證
*/
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 重復執(zhí)行同一個隊列任務的原因
- Laravel框架數(shù)據(jù)庫CURD操作、連貫操作總結(jié)
- PHP開發(fā)框架Laravel數(shù)據(jù)庫操作方法總結(jié)
- Laravel框架表單驗證詳解
- Laravel框架中擴展函數(shù)、擴展自定義類的方法
- Laravel框架路由配置總結(jié)、設置技巧大全
- PHP的Laravel框架中使用消息隊列queue及異步隊列的方法
- PHP框架Laravel插件Pagination實現(xiàn)自定義分頁
- Laravel 5框架學習之向視圖傳送數(shù)據(jù)
- Laravel框架源碼解析之入口文件原理分析
相關文章
phpstorm動態(tài)調(diào)試環(huán)境部署過程
這篇文章主要介紹了php代碼審計phpstorm動態(tài)調(diào)試的過程,xdebug調(diào)試調(diào)試環(huán)境部署的操作過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
linux mint下安裝phpstorm2020包括JDK部分的教程詳解
這篇文章主要介紹了linux mint下安裝phpstorm2020包括JDK部分的教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09

