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

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

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

熱門話題

http狀態(tài)碼520是指伺服器在處理請(qǐng)求時(shí)遇到了一個(gè)未知的錯(cuò)誤,無(wú)法提供更具體的資訊。用於表示伺服器在處理請(qǐng)求時(shí)發(fā)生了一個(gè)未知的錯(cuò)誤,可能是由於伺服器配置問(wèn)題、網(wǎng)路問(wèn)題或其他未知原因?qū)е碌?。通常是由伺服器配置?wèn)題、網(wǎng)路問(wèn)題、伺服器過(guò)載或程式碼錯(cuò)誤等原因?qū)е碌?。如果遇到狀態(tài)碼520錯(cuò)誤,最好聯(lián)絡(luò)網(wǎng)站管理員或技術(shù)支援團(tuán)隊(duì)以取得更多的資訊和協(xié)助。

http狀態(tài)碼403是伺服器拒絕了客戶端的請(qǐng)求的意思。解決http狀態(tài)碼403的方法是:1、檢查身份驗(yàn)證憑證,如果伺服器要求身份驗(yàn)證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對(duì)IP位址進(jìn)行了限制,確??蛻舳说腎P位址被列入白名單或未列入黑名單;3、檢查文件權(quán)限設(shè)置,如果403狀態(tài)碼與文件或目錄的權(quán)限設(shè)置有關(guān),確保客戶端具有足夠的權(quán)限訪問(wèn)這些文件或目錄等等。

function是函數(shù)的意思,是一段具有特定功能的可重複使用的程式碼區(qū)塊,是程式的基本組成單元之一,可以接受輸入?yún)?shù),執(zhí)行特定的操作,並傳回結(jié)果,其目的是封裝一段可重複使用的程式碼,提高程式碼的可重複使用性和可維護(hù)性。

掌握HTTP301狀態(tài)碼的意思:網(wǎng)頁(yè)重定向的常見應(yīng)用場(chǎng)景隨著網(wǎng)路的快速發(fā)展,人們對(duì)網(wǎng)頁(yè)互動(dòng)的要求也越來(lái)越高。在網(wǎng)頁(yè)設(shè)計(jì)領(lǐng)域,網(wǎng)頁(yè)重定向是一種常見且重要的技術(shù),透過(guò)HTTP301狀態(tài)碼來(lái)實(shí)現(xiàn)。本文將探討HTTP301狀態(tài)碼的意義以及在網(wǎng)頁(yè)重新導(dǎo)向中的常見應(yīng)用場(chǎng)景。 HTTP301狀態(tài)碼是指永久重新導(dǎo)向(PermanentRedirect)。當(dāng)伺服器接收到客戶端發(fā)

如何使用NginxProxyManager實(shí)現(xiàn)HTTP到HTTPS的自動(dòng)跳轉(zhuǎn)隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的網(wǎng)站開始採(cǎi)用HTTPS協(xié)議來(lái)加密傳輸數(shù)據(jù),以提高數(shù)據(jù)的安全性和用戶的隱私保護(hù)。由於HTTPS協(xié)定需要SSL憑證的支持,因此在部署HTTPS協(xié)定時(shí)需要有一定的技術(shù)支援。 Nginx是一款強(qiáng)大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

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

快速應(yīng)用:PHP非同步HTTP下載多個(gè)檔案的實(shí)用開發(fā)案例分析隨著互聯(lián)網(wǎng)的發(fā)展,檔案下載功能已成為許多網(wǎng)站和應(yīng)用程式的基本需求之一。而對(duì)於需要同時(shí)下載多個(gè)檔案的場(chǎng)景,傳統(tǒng)的同步下載方式往往效率低且耗費(fèi)時(shí)間。為此,使用PHP非同步HTTP下載多個(gè)檔案成為了越來(lái)越常見的解決方案。本文將透過(guò)一個(gè)實(shí)際的開發(fā)案例,詳細(xì)分析如何使用PHP非同步HTTP

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