您好,登錄后才能下訂單哦!
這篇文章主要介紹Laravel中之從入口到輸出的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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 { // 是否經過授權的訪問 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 Illuminate\Database\Eloquent\Model; 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 App\Http\Controllers; use App\Http\Controllers\Controller; // 引入請求驗證類 use App\Http\Requests\FormValidate; /* 可選注入模型類(分層) * 這邊引入了一個 Test 模型類 */ use App\Test; 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 視圖文件
<h2>Laravel 從入口到輸出解析完畢!</h2>
以上是“Laravel中之從入口到輸出的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。