iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

今天想來了解的是 Laravel 中的 Routing,之前在 Day4 - 「Laravel 11 遊樂園」導覽地圖 中提到 Routing 負責設計遊客的路徑和流程,我們先來看看這是在做什麼吧!

Laravel Routing?

來唷!在一個小鎮上,有位名叫小路的女孩,負責管理小鎮的「運輸系統」。她的任務是確保每位居民都能輕鬆到達他們想去的地方。於是,小路創建了一幅「導航圖」,指引居民前往特定的功能或資源。小鎮的每一條道路就如同 Laravel 的路由,而小路則設計了幾條主要的路由,以滿足小鎮的各種需求。


1. 基本路由設定

小路知道,首先她需要一條通往小鎮首頁的路。於是,她在「導航圖」上設定了一個基本的路由,當居民們訪問 / 時,這個路由就會引導他們到達 resources/views/welcome.blade.php 的歡迎頁面,這就像是小路的導航圖中的首頁。

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

https://ithelp.ithome.com.tw/upload/images/20240927/20169308ljP5K6aQqQ.png


2. 設定更多路由

隨著小鎮的發展,居民們希望能夠獲得更多資訊。小路為此新增了一條路況路由,當居民們訪問 http://127.0.0.1:8000/news 時,他們會看到「這是路況新聞」的訊息,仿佛得到了最新的社區資訊。

Route::get('/news', function () {
    return "這是路況新聞";
});

3. 使用控制器

為了更好地組織這些資訊,小路決定使用控制器來處理請求。她創建了一個名為 EventController 的新路徑:

php artisan make:controller EventController

接著,她在路由中調用這個控制器:

Route::get('/event', [EventController::class, 'index']);

EventController 中,她定義了 index 方法來返回視圖,這樣,當居民訪問 /event 時,他們就能再次看到那個溫暖的歡迎頁面。

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class EventController extends Controller
{
    public function index()
    {
        return view('welcome');
    }
}

4. 路由參數

小路了解到,有時候居民們會想要更具體的信息。於是,她設計了一條路由,居民們在訪問 http://127.0.0.1:8000/news/1 時,可以進階知道新聞的詳細信息

Route::get('news/{id}', function ($id) {
    return "新聞 ID 是:" . $id;
});

5. 重定向路由

小路還設計了一種方便的方式來重定向路由,讓居民能夠輕鬆轉向其他路徑,當居民訪問 /news 時,他們會自動轉向 /event,不再迷路。

Route::redirect('/news', '/event');

6. 使用 Route::view

小路發現有時候只需返回導航圖中的首頁就好。於是她使用了 Route::view() 簡化了路由,居民們只需訪問 http://127.0.0.1:8000/welcome 即可獲得他們想要的資訊。

Route::view('/welcome', 'welcome');

參考資料

  1. Laravl官方網站 - Routing
  2. How Routing Works In Laravel 5.7
  3. Learning the Routing System in Laravel

踏著身心靈的塔羅腳步,轉向技術與邏輯的工程師之路,就藉由塔羅日抽來紀錄今日的學習與生活吧!
聖杯四:試著將注意力從過去的陰影中抽離,將目光放到新的機會上吧!就像畫面上方飄來的雲朵,新的體驗正悄悄降臨。放下心中的不安與防備,用更開放的心態去面對新的相遇,你會發現,真誠的付出終將得到美好的回報。

"There is something you must always remember.
You are braver than you believe,
stronger than you seem,
and smarter than you think."

這件事你一定要永遠記得:
你比你自認得更勇敢,
比你自己看起來得更堅強,
比你自己想像得更聰明。

— 《小熊維尼》


上一篇
Day12 - Laravel Eager Loading vs. Lazy Loading
系列文
Laravel 隨筆學習札記13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言