首頁 後端開發 php教程 Laravel 514 + Bootstrap 334 筆記四:Laravel 控制器

Laravel 514 + Bootstrap 334 筆記四:Laravel 控制器

Jul 30, 2016 pm 01:31 PM
controller function http

在前文中,我們把使用者的請求回應邏輯放在路由中處理,實際情況下這不切實際,也沒有前方程式碼那麼簡單。

而大部分情況下,使用者的請求操作是放在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(&#39;hw&#39;);
    }
}
登入後複製

在resources/views 下新建內容如下:
<html>
<body>
Hello World!
</body>
</html>
登入後複製

修改 routes.php,修改後的程式碼如下:
<?php

Route::get(&#39;/&#39;, function () {
    return view(&#39;welcome&#39;);
});

Route::get(&#39;/hw&#39;, &#39;HomeController@hw&#39;);
登入後複製

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


1.2 控制器向視圖傳遞參數

當Controller需要向View傳遞參數時,是這樣的,修改控制器的hw方法:

    public function hw()
    {
        return view(&#39;hw&#39;,[&#39;name&#39;=>'CBW']);
    }
登入後複製
修改hw.php視圖程式碼:
<html>
<body>
[<?php echo $name; ?>],您好!
</body>
</html>
登入後複製
再次造訪如下 :


1.3 控制器從路由讀取參數並傳遞

當控制器需要從路由獲取參數時,是這樣的,修改上例示的路由代碼段:

Route::get('/hw/{name}', 'HomeController@hw');
登入後複製
修改控制器的hw方法:
    public function hw($name)
    {
        return view('hw',['name'=>$name]);
    }
登入後複製
接著再造訪:http://localhost:801/hw/calvin,如下圖示:


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(&#39;Visit.Home.hw&#39;,[&#39;name&#39;=>$name]);
    }
}
登入後複製

D.修改routes.php程式碼段為:

Route::get('/hw/{name}', 'Visit\HomeController@hw');
登入後複製
E.把視圖檔案hw.php移到resources/views/Visit/Home 下;
現在,再次造訪: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教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

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

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

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

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

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

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

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

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

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

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

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

使用http.PostForm函數傳送帶有表單資料的POST請求 使用http.PostForm函數傳送帶有表單資料的POST請求 Jul 25, 2023 pm 10:51 PM

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

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

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

See all articles