首頁 後端開發 php教程 Laravel 514 + Bootstrap 334 筆記二:Laravel 路由

Laravel 514 + Bootstrap 334 筆記二:Laravel 路由

Jul 30, 2016 pm 01:31 PM
function localhost return route

1 路由機制

MVC中路由是一個非常重要的功能,其作用是:
A.根據用戶訪問(URL)匹配傳入的請求及請求附帶的參數;
B.請求映射Controller的Action方法,並把參數傳入;
C.返回Action方法處理結果;
下圖以簡單的形式表示一個用戶請求:

的路由

在Laravel 5.1.4中,路由設定檔是 app/Http/routes.php。

2.1 直接傳回字串的路由

在原有的程式碼後面追加如下程式碼段:

Route::get('/hw', function () {
    return 'Hello World';
});
登入後複製

開啟瀏覽器存取:http://localhost:801/hw,如下圖示:

2.2 返回視圖的路由

在上面的程式碼中再追加如下程式碼區:

Route::get('/home', function () {
    return view('home');
});
登入後複製

在目錄resources/views下建立視圖檔:home.php,內容如下:在目錄resources/views下建立視圖檔案:home.php,內容如下:home.

<html>
<body>
<h1>home</h1>
</body>
</html>
登入後複製
開啟瀏覽器存取:http://localhost:801/home

如果上例的程式碼中需要傳送參數給檢視頁呢?修改我們的路由代碼:

Route::get('/home', function () {
    return view('home', ['name' => '张三']);
});
登入後複製
修改視圖程式碼:
<html>
<body>
[<?php echo $name; ?>],您好!
</body>
</html>
登入後複製
再看看訪問的效果:

如果視圖太多,一般是按模組甚至按功能存放的,在resources/views目錄下依次新建目錄:public/demo,然後把home.php移到該目錄中。

修改上例中的路由代碼為:

Route::get('/home', function () {
    return view('public.demo.home', ['name' => '张三']);
});
登入後複製
再次造訪還是能正常開啟頁面的。 2.3 路由參數

在前文已經說過,路由可以匹配出用戶的請求參數,那如何匹配呢?在上例的路由檔案中追加程式碼段:

Route::get('user/{name}', function($name) {
    return '用户姓名:'.$name;
});
登入後複製
開啟瀏覽器存取:http://localhost:801/user/jack

呢?修改路由代碼:

Route::get('user/{name}/{age}', function($name,$age) {
    return '用户姓名:'.$name.',年龄:'.$age;
});
登入後複製
開啟瀏覽器存取:http://localhost:801/user/jack/23

假如age參數不是必須的呢?再次修改路由代碼:
Route::get('user/{name}/{age?}', function($name,$age=null) {
    return '用户姓名:'.$name.',年龄:'.$age;
});
登入後複製

訪問位址:http://localhost:801/user/jack

2.4 路由參數的限制

在正常情況下,用戶存取的某些參數是一定有一定參數的規則,例如讀取用戶資訊時的用戶ID可能是數字,修改新聞資訊時的新聞ID可能是GUID等等。

修改routes.php文件,追加以下代碼:

Route::get('new/{id}', function($id)
{
    return '新闻ID:'.$id;
})->where('id', '[0-9]+');
登入後複製

打開瀏覽器訪問 http://localhost:801/new/3 是這樣的:

可存取 http://localhost:801/new/abc 時則提供頁面不存在:


,修改上例的路由代碼:

Route::get('new/{id}/{title}', function($id,$title)
{
    return '新闻ID:'.$id.',新闻标题:'.$title;
})->where(['id' => '[0-9]+', 'title' => '[a-z]+']);
登入後複製
訪問效果這裡就不示範了。

另外,我們可以設定全域的限制條件,開啟檔案:app/Providers/RouteServiceProviders.php,修改boot方法如下:

    public function boot(Router $router)
    {
        //
        $router->pattern('id', '[0-9]+');
        parent::boot($router);
    }
登入後複製
修改上例中的路由代碼為:

Route::get('new/{id}', function($id)
{
    return '新闻ID:'.$id;
});
登入後複製
訪問效果和上例是一樣的,這裡不在示範。 2.5 取得路由參數

在routes.php中可以取得路由參數,以此來做其他的操作,修改上例的路由代碼:
Route::get('new/{id}', function(Request $request, $id)
{
    if ($request->route('id') == '2')
    {
        return '新闻ID是2';
    }else{
        return '新闻ID不是2,值是:'.$id;
    }
});
登入後複製

?後插入新的一行:

🎜🎜🎜🎜
use Illuminate\Http\Request;
登入後複製
🎜🎜🎜打開瀏覽器,分別訪問 http://localhost:801/new/2 和 可看到不同的頁面效果。 🎜🎜🎜路由還有很多複雜的功能,有待研究。 🎜🎜🎜版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 🎜🎜 🎜 以上就介紹了Laravel 514 + Bootstrap 334 筆記二:Laravel 路由,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 🎜 🎜 🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
mysql為什麼連線不上localhost mysql為什麼連線不上localhost Aug 10, 2023 pm 02:55 PM

mysql連線不上localhost的原因有mysql服務未啟動、mysql連接埠被佔用和MySQL設定檔問題。詳細介紹:1、在Windows系統中,可以透過在命令提示字元下輸入「services.msc」來開啟服務管理器,然後找到mysql服務,確保其狀態為「運行中」。在Linux系統中,可以使用「services.msc」指令來檢查和控制服務狀態;2、可以透過開啟指令等等。

C語言return的用法詳解 C語言return的用法詳解 Oct 07, 2023 am 10:58 AM

C語言return的用法有:1、對於傳回值類型為void的函數,可以使用return語句來提前結束函數的執行;2、對於傳回值型別不為void的函數,return語句的作用是將函數的執行結果傳回給呼叫者;3、提前結束函數的執行,在函數內部,我們可以使用return語句來提前結束函數的執行,即使函數並沒有回傳值。

function是什麼意思 function是什麼意思 Aug 04, 2023 am 10:33 AM

function是函數的意思,是一段具有特定功能的可重複使用的程式碼區塊,是程式的基本組成單元之一,可以接受輸入參數,執行特定的操作,並傳回結果,其目的是封裝一段可重複使用的程式碼,提高程式碼的可重複使用性和可維護性。

localhost打不開怎麼辦 localhost打不開怎麼辦 Nov 07, 2023 pm 02:47 PM

解決方法:1、檢查伺服器的運作狀態,並確保它正在監聽正確的連接埠;2、嘗試暫時停用防火牆或安全軟體,然後重新嘗試存取localhost;3、檢查作業系統的hosts文件,確保localhost的解析正確;4、嘗試重啟網路適配器或重新配置網路連接;5、嘗試更改本地伺服器使用的端口,或關閉其他佔用相同端口的程式;6、嘗試在hosts檔案中手動新增對應的IP位址和網域名稱等等。

linux localhost是什麼意思 linux localhost是什麼意思 Mar 14, 2023 am 09:53 AM

linux localhost的意思是“電腦主機名稱”,主機名稱用於在網路上識別獨立的電腦;在“root@localhost”中的root代表目前登入的用戶,在Linux中管理員帳號是root,使用者以root身分登入linux本機。

Java中return和finally語句的執行順序是怎樣的? Java中return和finally語句的執行順序是怎樣的? Apr 25, 2023 pm 07:55 PM

原始碼:publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}#輸出上述程式碼的輸出可以簡單地得出結論:return在finally之前執行,我們來看下字節碼層面上發生了什麼事情。下面截取case1方法的部分字節碼,並且對照源碼,將每個指令的含義註釋在

'enumerate()'函數在Python中的用途是什麼? 'enumerate()'函數在Python中的用途是什麼? Sep 01, 2023 am 11:29 AM

在本文中,我們將了解enumerate()函數以及Python中「enumerate()」函數的用途。什麼是enumerate()函數? Python的enumerate()函數接受資料集合作為參數並傳回一個枚舉物件。枚舉物件以鍵值對的形式傳回。 key是每個item對應的索引,value是items。語法enumerate(iterable,start)參數iterable-傳入的資料集合可以作為枚舉物件傳回,稱為iterablestart-顧名思義,枚舉物件的起始索引由start定義。如果我們忽

MySQL.proc表的作用與功能詳解 MySQL.proc表的作用與功能詳解 Mar 16, 2024 am 09:03 AM

MySQL.proc表的功能與功能詳解MySQL是一種流行的關係型資料庫管理系統,開發者在使用MySQL時常常會涉及到預存程序(StoredProcedure)的建立與管理。而MySQL.proc表則是一個非常重要的系統表,它儲存了資料庫中所有的預存程序的相關信息,包括預存程序的名稱、定義、參數等。在本文中,我們將詳細解釋MySQL.proc表的作用與功能

See all articles