Laravel 514 + Bootstrap 334 筆記四:Laravel 控制器
在前文中,我們把使用者的請求回應邏輯放在路由中處理,實際情況下這不切實際,也沒有前方程式碼那麼簡單。
而大部分情況下,使用者的請求操作是放在Controller中處理的(這不包含商業處理邏輯)。
Laravel 的所有控制器都是在 app/Http/Controllers 目錄中。
1 建立簡單的控制器
1.1 無參數的控制器
在目錄app/Http/Controllers 目錄中新檔案HomeController.php,程式碼如下:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw() { return view('hw'); } }
在resources/views 下新建內容如下:
<html> <body> Hello World! </body> </html>
修改 routes.php,修改後的程式碼如下:
<?php Route::get('/', function () { return view('welcome'); }); Route::get('/hw', 'HomeController@hw');
開啟瀏覽器存取:http://localhost:801/hw,如下圖示:
1.2 控制器向視圖傳遞參數
當Controller需要向View傳遞參數時,是這樣的,修改控制器的hw方法:
public function hw() { return view('hw',['name'=>'CBW']); }
<html> <body> [<?php echo $name; ?>],您好! </body> </html>
1.3 控制器從路由讀取參數並傳遞
當控制器需要從路由獲取參數時,是這樣的,修改上例示的路由代碼段:
Route::get('/hw/{name}', 'HomeController@hw');
public function hw($name) { return view('hw',['name'=>$name]); }
2 路由器深入
2.1 控制器和命名空間
一般情況下,一個應用系統將由多個子項目組成,比如一個網站有前台和後台,前台有新聞功能用於閱讀,後台有新聞功能用於管理。
現在,我們假設開發一個Web系統,包含兩個模組:一般使用者模組(Visit)和系統管理模組(Manage)。
A.在app/Http/Contollers 目錄中分別新建兩個模組的控制器子目錄:Visit、Manage;
B.在resources/views 下建立兩個子目錄:Visit、Manage,並在Visit下建立子目錄:Home;
C.把上例建立的HomeController 移到上一步新建的Visit 中。修改後的程式碼如下:
<?php namespace App\Http\Controllers\Visit; use App\Http\Controllers\Controller; class HomeController extends Controller { public function hw($name) { return view('Visit.Home.hw',['name'=>$name]); } }
D.修改routes.php程式碼段為:
Route::get('/hw/{name}', 'Visit\HomeController@hw');
現在,再次造訪:http://localhost :801/hw/calvin,依然是正確的。
2.2 控制器中間件
在前文中我們已經示範了中間件的使用,再回顧一下上文的例子:
Route::get('/user/{age}', ['middleware' => 'my', function ($age) { return '用户年龄:'.$age; }]);
事實上我們也可以在控制器的構造函數中處理:
class UserController extends Controller { public function __construct() { $this->middleware('my'); } }
另外,還有隱式控制器、RESTful、路由快取等等,後文再繼續補充。
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了Laravel 514 + Bootstrap 334 筆記四:Laravel 控制器,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱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)

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

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

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

使用http.PostForm函數發送帶有表單資料的POST請求在Go語言的http包中,可以使用http.PostForm函數發送帶有表單資料的POST請求。 http.PostForm函數的原型如下:funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)其中,u

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP
