- Laravel 教程
- Laravel - 首頁
- Laravel - 概述
- Laravel - 安裝
- Laravel - 應用結構
- Laravel - 配置
- Laravel - 路由
- Laravel - 中介軟體
- Laravel - 名稱空間
- Laravel - 控制器
- Laravel - 請求
- Laravel - Cookie
- Laravel - 響應
- Laravel - 檢視
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 資料庫操作
- Laravel - 錯誤與日誌
- Laravel - 表單
- Laravel - 本地化
- Laravel - 會話
- Laravel - 驗證
- Laravel - 檔案上傳
- Laravel - 傳送郵件
- Laravel - Ajax
- Laravel - 錯誤處理
- Laravel - 事件處理
- Laravel - 門面
- Laravel - 合同
- Laravel - CSRF 保護
- Laravel - 身份驗證
- Laravel - 授權
- Laravel - Artisan 控制檯
- Laravel - 加密
- Laravel - 雜湊
- 理解發布流程
- Laravel - 客人使用者許可權
- Laravel - Artisan 命令
- Laravel - 分頁自定義
- Laravel - Dump Server
- Laravel - 操作 URL
- Laravel 有用資源
- Laravel - 快速指南
- Laravel - 有用資源
- Laravel - 討論
Laravel - 路由
在 Laravel 中,所有請求都透過路由進行對映。基本路由將請求路由到關聯的控制器。本章討論 Laravel 中的路由。
Laravel 中的路由包括以下類別:
- 基本路由
- 路由引數
- 命名路由
基本路由
所有應用程式路由都在 **app/routes.php** 檔案中註冊。此檔案告訴 Laravel 它應該響應的 URI,以及關聯的控制器將對其進行特定呼叫。歡迎頁面的示例路由可以在下面給出的螢幕截圖中看到:
Route::get ('/', function () {
return view('welcome');});
示例
觀察以下示例以更深入地瞭解路由:
app/Http/routes.php
<?php
Route::get('/', function () {
return view('welcome');
});
resources/view/welcome.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
<link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet"
type = "text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 96px;
}
</style>
</head>
<body>
<div class = "container">
<div class = "content">
<div class = "title">Laravel 5.1</div>
</div>
</div>
</body>
</html>
路由機制如下圖所示:
現在讓我們詳細瞭解路由機制中涉及的步驟:
**步驟 1** - 最初,我們應該執行應用程式的根 URL。
**步驟 2** - 現在,執行的 URL 應該與 **route.php** 檔案中的相應方法匹配。在本例中,它應該匹配方法和根 ('/') URL。這將執行相關的函式。
**步驟 3** - 該函式呼叫模板檔案 **resources/views/welcome.blade.php**。接下來,該函式呼叫 **view()** 函式,引數為 **'welcome'**,不使用 **blade.php**。
這將生成如下所示的 HTML 輸出:
路由引數
有時在 Web 應用程式中,您可能需要捕獲傳遞給 URL 的引數。為此,您應該修改 **routes.php** 檔案中的程式碼。
您可以透過兩種方式在 **routes.php** 檔案中捕獲引數,如下所述:
必填引數
這些引數是 Web 應用程式路由必須強制捕獲的引數。例如,從 URL 中捕獲使用者的識別號非常重要。這可以透過定義如下所示的路由引數來實現:
Route::get('ID/{id}',function($id) {
echo 'ID: '.$id;
});
可選引數
有時開發人員可以將引數設定為可選,這可以透過在 URL 中的引數名稱後新增 **?** 來實現。必須將預設值作為引數名稱提及。請檢視以下示例,該示例顯示瞭如何定義可選引數:
Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return $name;});
上面的示例檢查值是否與 **TutorialsPoint** 匹配,並相應地路由到定義的 URL。
命名路由
命名路由允許以一種方便的方式建立路由。可以使用 name 方法連結到路由定義中來指定路由鏈。以下程式碼顯示了使用控制器建立命名路由的示例:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
使用者控制器將呼叫引數為 **profile** 的 **showProfile** 函式。引數使用 name 方法連結到路由定義中。