Laravel 514 + Bootstrap 334 筆記四:Laravel 控制器
Jul 30, 2016 pm 01:31 PM在前文中,我們把用戶的請(qǐng)求響應(yīng)邏輯放在路由中處理,實(shí)際情況下這不現(xiàn)實(shí),也沒(méi)有前方代碼那么簡(jiǎn)單。
而大部分情況下,用戶的請(qǐng)求操作是放在Controller中處理的(這不包含業(yè)務(wù)處理邏輯)。
Laravel 的所有控制器是在 app/Http/Controllers 目錄中。
1 創(chuàng)建簡(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 下新建視圖 hw.php,內(nèi)容如下:
Hello World!
修改 routes.php,修改后的代碼如下:
<?php Route::get('/', function () { return view('welcome'); }); Route::get('/hw', 'HomeController@hw');
打開瀏覽器訪問(wèn):http://localhost:801/hw,如下圖示:
1.2 控制器向視圖傳遞參數(shù)
當(dāng)Controller需要向View傳遞參數(shù)時(shí),是這樣的,修改控制器的hw方法:
public function hw() { return view('hw',['name'=>'CBW']); }修改hw.php視圖頁(yè)代碼:
[<?php echo $name; ?>],您好!再次訪問(wèn)如下 :
1.3 控制器從路由讀取參數(shù)并傳遞
當(dāng)控制器需要從路由獲取參數(shù)時(shí),是這樣的,修改上例示的路由代碼段:
Route::get('/hw/{name}', 'HomeController@hw');修改控制器的hw方法:
public function hw($name) { return view('hw',['name'=>$name]); }然后再次訪問(wèn):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 下創(chuàng)建兩個(gè)子目錄:Visit、Manage,并在 Visit下創(chuàng)建子目錄:Home;
C.把上例創(chuàng)建的 HomeController 移動(dòng)到上一步新建的 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移動(dòng)到 resources/views/Visit/Home 下;
現(xiàn)在,再次訪問(wèn):http://localhost:801/hw/calvin,依然是正確的。
2.2?控制器中間件
在前文中我們已經(jīng)演示了中間件的使用,再回顧一下上文的示例:
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脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

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

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

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

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

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

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

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

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

掌握HTTP301狀態(tài)碼的含義:網(wǎng)頁(yè)重定向的常見應(yīng)用場(chǎng)景隨著互聯(lián)網(wǎng)的迅猛發(fā)展,人們對(duì)網(wǎng)頁(yè)交互的要求也越來(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è)重定向中的常見應(yīng)用場(chǎng)景。HTTP301狀態(tài)碼是指永久重定向(PermanentRedirect)。當(dāng)服務(wù)器接收到客戶端發(fā)

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

HTTP狀態(tài)碼200:探索成功響應(yīng)的含義與用途HTTP狀態(tài)碼是用來(lái)表示服務(wù)器響應(yīng)狀態(tài)的數(shù)字代碼。其中,狀態(tài)碼200表示請(qǐng)求已成功被服務(wù)器處理。本文將探索HTTP狀態(tài)碼200的具體含義與用途。首先,讓我們了解一下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ā)送帶有表單數(shù)據(jù)的POST請(qǐng)求在Go語(yǔ)言的http包中,可以使用http.PostForm函數(shù)發(fā)送帶有表單數(shù)據(jù)的POST請(qǐng)求。http.PostForm函數(shù)的原型如下:funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)其中,u
