Laravel 学习路线【4】控制器
生活随笔
收集整理的這篇文章主要介紹了
Laravel 学习路线【4】控制器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
控制器簡介
控制器可以將相關(guān)的HTTP 請求封裝到一個(gè)勒種進(jìn)行處理,控制器目錄在 app/Http/Controllers 目錄中
定義控制器
<?php namespace App\Http\Controllers;use App\User; use App\Http\Controlelrs\Controller;class UserController extends Controller {//為指定用戶顯示詳情public function show($id){return view('user.profile',['user' => User::findOrFail($id)]);} }我們可以這樣定義路由
Route::get('user/{id}','UserController@show');如果一個(gè)請求匹配到上面URI UserController 的 show 方法就會(huì)被執(zhí)行。路由參數(shù)也會(huì)傳遞給當(dāng)前方法
單動(dòng)作控制器
如果你想定義一個(gè)只處理一個(gè)動(dòng)作的控制器,可以在控制器中定義 __invoke 方法。
<?phpnamespace App\Http\Controllers;use App\User; use App\Http\Controllers\Controller;class ShowProfile extends Controller {public function __invoke($id){return view('user.profile',['users' => findOrFail($id)]);} }當(dāng)你為這個(gè)單動(dòng)作控制器注冊路由的時(shí)候,不需要指定方法:
Route::get('user/{id}','ShowProfile');控制器中間件
中間件可以像這樣分配給控制器路由
Route::get('profile','UserController@show')->middleware('auth');但是,將中間件放在控制器構(gòu)造函數(shù)中更方便,在控制器的構(gòu)造函數(shù)中使用 middleware 方法你可以很輕松的分配中間件給該控制器。
class UserController extends Controller {//實(shí)例化一個(gè)新的UserController 實(shí)例public function __construct(){$this->middleware('auth');$this->middleware('log')->only('index');$this->middleware('subscribed')->except('store');} }在控制器中還可以使用閉包注冊中間件,這為我們定義只在某個(gè)控制器中使用中間件提供了方便,無需定義完整的中間件類:
$this->middleware(function($request,$next){return $next($request);})注:你還可以將中間件分配給多個(gè)控制器動(dòng)作,不過,這意味著你的控制器會(huì)變得越來越臃腫,這種情況下,需要考慮將控制器分割成多個(gè)更小的控制器。
總結(jié)
以上是生活随笔為你收集整理的Laravel 学习路线【4】控制器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用MVC连接数据库及MVC应用的一般命
- 下一篇: js中startsWith 函数不能在任