Laravel 514 + Bootstrap 334 筆記二:Laravel 路由
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>

如果上例的程式碼中需要傳送參數給檢視頁呢?修改我們的路由代碼:
Route::get('/home', function () { return view('home', ['name' => '张三']); });
<html> <body> [<?php echo $name; ?>],您好! </body> </html>
修改上例中的路由代碼為:
Route::get('/home', function () { return view('public.demo.home', ['name' => '张三']); });
在前文已經說過,路由可以匹配出用戶的請求參數,那如何匹配呢?在上例的路由檔案中追加程式碼段:
Route::get('user/{name}', function($name) { return '用户姓名:'.$name; });
呢?修改路由代碼:
Route::get('user/{name}/{age}', function($name,$age) { return '用户姓名:'.$name.',年龄:'.$age; });

假如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; });
在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;

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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