3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
Laravel Routing PHP:7.2 Laravel:5.7 Laravel 所有的 routes 定義都是寫在 routes 目錄裡,這裡介紹一下兩個最常用的: routes/web.php routes/api.php 根據檔名的命名,顧名思義分別是定義一般頁面與 API 的 routes,這兩支檔案又綁了 RouteServiceProvider 這個 Provider,因此定義在 routes/api.php 的 routes 都會自動加上 /api 的 prefix。 舉例來說,以下這個範例如果寫在 web.php 及 api.php,進入的 URL 分別是 /foo 、 /api/foo。 Route::get('hello', function () { return 'Hello World'; }); 基本使用 Laravel route 的撰寫很容易,基本上是以 Http verb 為 method name 來決定。 Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); 基本範例 // 該頁只顯示字串 Route::get('hello', function () { return 'Hello World'; }); // 直接使用 resources/views 裡的頁面 Route::get('/', function () { return view('welcome'); }); // 綁定 Controller (格式為 Controller Namespace@method ) // RouteServiceProvider 會預設定義 Namespace 在 App\Http\Controllers Route::get('/user', 'UserController@index'); Route::post('/user/update', 'API\UserController@update'); RESTful 現在的網站或 API 設計已經都是走 RESTful 的架構了, Laravel 的 Route 提供了很完整的功能可以輕易的完成 RESTful 架構。 基本範例 // 定義參數 Route::get('user/{id}', function ($id) { return 'User ' . $id; }); // 多個參數 Route::get('user/{id}/name/{name}', function ($id, $name) { // do something }); // Optional 參數,變數後面加上 ? 字符就可以變成 optional 的參數,但相對的是要再設定預設值。 Route::get('/list/user/{page?}', function ($page = 1) { return $page; }); Route Groups 在一般的網站應用中,一定會有數個頁面是屬於同性質甚至有著相似的 URL,透過 Route Groups 可以批次處理這些 routes。 // 設定 URL Prefix Route::prefix('admin')->group(function () { Route::get('users', function () { // "/admin/users" URL }); Route::get('list', function () { // "/admin/list" URL }); }); // 設定 Controller Namespace Route::namespace('Admin')->group(function () { // Controllers 預設 Namespace 為 "App\Http\Controllers\Admin" // 在此 group 裡面的定義就不用寫成 Admin\Controller Route::get('/test', 'TestController@test'); }); // 設定 Middleware Route::middleware(['first', 'second'])->group(function () { Route::get('/', function () { // 使用 first 和 second 這兩個 Middleware }); }); // 同時使用 namespace 及 prefix Route::namespace('Admin')->prefix('admin')->group(function () { Route::get('/test', 'TestController@test'); }); // 直接透過 group 的參數設定 Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function () { Route::get('/test', 'TestController@test'); }); Named Routes 在開發中如果有需要轉址或者其他用途,也可以給予 Route 命名再加以應用。 基本使用 Route::get('/user', 'UserController@index')->name('user'); // 在 Controller 中可以取得 url $url = route('user'); // 透過 redirect method 直接轉址 return redirect()->route('name'); 代入參數 Route::get('/user/{id}/profile', 'UserController@index')->name('user'); $url = route('user', ['id' => 1]); Categories: Laravel Tags: LaravelPHP 分類 Android AngularJS API Blueprint Chrome Database MySQL DataStructure Docker Editor Vim Firefox Git GitLab Google API Hadoop HTTP Language Go Java JavaScript jQuery jQueryChart Node.js Vue Vue-CLI PHP Laravel Lumen ZendFramework Python Mac Network Cisco DLink Juniper Oauth Server Apache Share Unix FreeBSD Linux WebDesign Bootstrap CSS HTML Wordpress Search 搜尋關鍵字:

本文由blogjohnsonluorg提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦