? Laravel新手系列的第二篇文章來了!讓我們直接進入主題!
Laravel中的路由機制定義了應用程序如何響應用戶請求。當用戶訪問URL或提交表單時,Laravel的路由系統決定下一步做什麼。這可能包括返回視圖、執行控制器操作或處理數據。
Laravel的路由處理在routes文件夾中,特別是在web.php和api.php等文件中。
web請求的路由定義在routes/web.php文件中,API請求的路由定義在routes/api.php文件中。
<code>Route::get('/', function () { return view('welcome'); });</code>
假設您正在構建一個博客應用程序,用戶可以在其中查看帖子列表、查看單個帖子的詳細信息以及添加新帖子。
這裡,/posts路由獲取帖子列表並將它們傳遞給posts.index視圖。
<code>Route::get('/posts', function () { $posts = [ ['id' => 1, 'title' => '第一篇文章', 'content' => '这是第一篇文章的内容。'], ['id' => 2, 'title' => '第二篇文章', 'content' => '这是第二篇文章的内容。'] ]; return view('posts.index', ['posts' => $posts]); });</code>
這裡,/posts/{id}路由通過ID動態獲取帖子並返回詳細視圖。如果帖子不存在,則顯示Laravel的默認404錯誤。
<code>Route::get('/posts/{id}', function ($id) { $posts = [ 1 => ['title' => '第一篇文章', 'content' => '这是第一篇文章的内容。'], 2 => ['title' => '第二篇文章', 'content' => '这是第二篇文章的内容。'] ]; if (!isset($posts[$id])) { abort(404, '帖子未找到'); } return view('posts.show', ['post' => $posts[$id]]); });</code>
/posts路由處理添加新帖子的表單提交。
<code>Route::post('/posts', function () { // 添加新帖子的逻辑 return '已添加新帖子!'; });</code>
Laravel提供各種方法來為不同的HTTP動詞定義路由。
<code>Route::post('/submit', function () { return '表单已提交!'; }); Route::put('/update', function () { return '数据已更新!'; }); Route::delete('/delete', function () { return '数据已删除!'; });</code>
使用控制器有助於保持路由文件簡潔易維護。 這裡,UserController@index處理/users路由的邏輯。
<code>Route::get('/users', [UserController::class, 'index']);</code>
命名的路由允許您按名稱而不是URL引用路由,這在URL更改時特別有用。
<code>Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');</code>
然後,您可以生成此路由的URL:
<code>$url = route('dashboard');</code>
您可以在路由中傳遞動態參數。
必需參數
<code>Route::get('/user/{id}', function ($id) { return '用户ID:' . $id; });</code>
可選參數
<code>Route::get('/', function () { return view('welcome'); });</code>
中間件可以在處理請求之前限制存取或執行操作。
<code>Route::get('/posts', function () { $posts = [ ['id' => 1, 'title' => '第一篇文章', 'content' => '这是第一篇文章的内容。'], ['id' => 2, 'title' => '第二篇文章', 'content' => '这是第二篇文章的内容。'] ]; return view('posts.index', ['posts' => $posts]); });</code>
在此範例中,只有經過驗證的使用者才能存取/profile路由。
路由組可讓您套用共用屬性,例如中間件或前綴。這裡,群組內的所有路由都共用admin前綴和auth中間件。
<code>Route::get('/posts/{id}', function ($id) { $posts = [ 1 => ['title' => '第一篇文章', 'content' => '这是第一篇文章的内容。'], 2 => ['title' => '第二篇文章', 'content' => '这是第二篇文章的内容。'] ]; if (!isset($posts[$id])) { abort(404, '帖子未找到'); } return view('posts.show', ['post' => $posts[$id]]); });</code>
Laravel可以自動將路由參數綁定到Eloquent模型。 在這種情況下,Laravel檢索與{post}參數對應的Post模型。
Laravel使用其內建工具輕鬆測試路由。您可以使用php artisan route:list查看應用程式中所有已定義的路由。 此指令顯示路由方法、URI和已指派中間件等詳細資訊。
<code>Route::post('/posts', function () { // 添加新帖子的逻辑 return '已添加新帖子!'; });</code>
Laravel的路由系統是一個強大而靈活的工具,它簡化了Web開發。透過瞭解基礎知識並利用進階特性(如中間件、命名路由和路由模型綁定),您可以建立簡潔、高效且易於維護的應用程式。
這裡有Laravel很棒且做得非常好的文件。
附註:如果您覺得這篇文章有幫助,請按讚並分享!如果您對我有什麼問題,請留言!我很樂意與您聊天! :)
下週我們將推出下一篇文章!
以上是了解 Laravel 的路由系統【Laravel 初學者係列 |第2部分]的詳細內容。更多資訊請關注PHP中文網其他相關文章!