摘要:預備知識目錄后面簡稱目錄后面簡稱入口文件過程詳解范例定義路由文件路徑修改如下定義中間件中間件路徑新建中間件必須返回響應在處理請求之前做些什么在處理請求之后做些什么中間件處理完畢后,做些什么中間件處理完畢后,做些什么注冊中間件中間件配件文件路
I. 預備知識 Laravel 目錄
/path/to
后面簡稱 Laravel
Web 目錄Laravel/public
后面簡稱 Web
入口文件Web/index.phpII. 過程詳解
范例: 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/Middleware2.2 新建中間件 Test.php:
namespace AppHttpMiddleware; 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" => AppHttpMiddlewareTest::class4. 表單驗證(請求)
文件存放目錄:
Laravel/app/Http/Requests
新建 FormValidate.php 驗證類:
/** * 驗證不通過時,通過 header 中的 referer 重定向到 * 上一頁 */ namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class FormValidate extends FormRequest { // 是否經過授權的訪問 public function authorize(){ return true; } // 驗證規則 public function rules(){ /** * required 表示必須 * max:255 最大長度 255 */ return [ "name" => "required|max:255" ]; } }5. 模型
文件路徑:
Laravel/app
新建模型 Test.php
namespace App; use IlluminateDatabaseEloquentModel; class Test extends Model { // 獲取某張表的所有數據(查詢構造器) 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); } // 執行通用 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 AppHttpControllers; use AppHttpControllersController; // 引入請求驗證類 use AppHttpRequestsFormValidate; /* 可選注入模型類(分層) * 這邊引入了一個 Test 模型類 */ use AppTest; class TestController extends Controller { // 構造器(可以添加中間件 或 注入) 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 視圖文件
Laravel 從入口到輸出解析完畢!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25724.html
摘要:上次提到過,模板引擎一般是要做三件事情變量值的輸出條件判斷和循環引入或繼承其他文件現在就來看看的模板引擎是如何來處理這三件事情的。引擎接下來就是本文的重點是如何編譯的。如果有興趣的話,也可以實現一個自己的模板解析引擎。 上次提到過,模板引擎一般是要做三件事情: 變量值的輸出(echo) 條件判斷和循環(if ... else、for、foreach、while) 引入或繼承其他文件 ...
摘要:首發于我的博客前言從開始,就提供了一個內置的服務器。在中的安裝一節中介紹了一個命令可以使用內置服務器實現外部訪問的命令。 首發于:我的博客 前言 PHP從5.4開始,就提供了一個內置的web服務器。 這個主要是用來做本地的開發用的。不能用于線上環境。現在我就介紹一下這個工具如何使用。 基礎應用 首先我們假定項目目錄是/home/baoguoxiao/www/php/demo,外界可訪...
摘要:高性能高精度定時服務,輕松管理千萬級定時任務。支持任務到期觸發和。支持創建延時任務和定時到期任務,和原生保持相同接口,輕松使用。不支持任務輸出任務鉤子及維護模式。是不指定任務名時自動生成,每個任務名必須唯一,相同任務名重復定義將會自動覆蓋。 Forsun高性能高精度定時服務,輕松管理千萬級定時任務。 定時服務項目地址:https://github.com/snower/forsun l...
摘要:在上一篇文章基于分支,從到,再到,簡單的介紹了這里分享在開發過程中,前端選擇的心理活動。而作為核心開發之一,也負責前端這塊的開發。 在上一篇文章《 ThinkSNS+基于Laravel master分支,從1到 0,再到0.1》,簡單的介紹了 ThinkSNS+ ,這里分享在開發過程中,前端選擇的心理活動。 Laravel Mix的放棄 在 Laravel 中,前端工作流默認是由 la...
摘要:判斷是否存在構造函數,不存在直接實例化,存在則通過來獲取輸入函數,并有相應的方法解決依賴參數問題,實現依賴注入。 Laravel 框架關鍵技術解析·讀書筆記(一) 第一章 入口文件 請求訪問的入口文件,主要完成幾部分工作,分別是: 自動加載函數的添加 服務器實例化與服務注冊 路由加載 請求實例化與路由分發 相應生成與發送 其中,自動加載函數用于包含引用文件,改文件是composer...
閱讀 1760·2023-04-26 00:20
閱讀 1804·2021-11-08 13:21
閱讀 1930·2021-09-10 10:51
閱讀 1557·2021-09-10 10:50
閱讀 3249·2019-08-30 15:54
閱讀 2131·2019-08-30 14:22
閱讀 1429·2019-08-29 16:10
閱讀 3089·2019-08-26 11:50