本文實(shí)例講述了Laravel框架控制器的middleware中間件用法。分享給大家供大家參考,具體如下:
場(chǎng)景:活動(dòng)開(kāi)始前只能訪問(wèn)宣傳頁(yè)面,開(kāi)始后才可以訪問(wèn)其他頁(yè)面:
步驟:
新建中間件,
注冊(cè)中間件,
使用中間件,
中間件的前置和后置操作。
控制器:
public function activity0(){
return '活動(dòng)快要開(kāi)始啦,敬請(qǐng)期待';
}
public function activity1(){
return '活動(dòng)頁(yè)面1';
}
public function activity2(){
return '活動(dòng)頁(yè)面2';
}
路由:
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::any('activity1',['uses'=>'StudentController@activity1']);
Route::any('activity2',['uses'=>'StudentController@activity2']);
在App\Http\Middleware下創(chuàng)建中間件Activity.php:
namespace App\Http\Middleware;
use Closure;
class Activity{
public function handle($request,Closure $next){
if(time() strtotime('2018-01-01')){
return redirect('activity0');
}
return $next($request);
}
}
//注冊(cè)中間件,在Kernel.php中的$routeMiddleware數(shù)組中增加
protected $routeMiddleware = [
'activity' => \App\Http\Middleware\Activity::class,
];
使用中間件,路由中的設(shè)置
//宣傳頁(yè)面不需要中間件驗(yàn)證,不能放里邊
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::group(['middleware'=>['activity']],function(){
Route::any('activity1',['uses'=>'StudentController@activity1']);
Route::any('activity2',['uses'=>'StudentController@activity2']);
});
//后置中間件
public function handle($request,Closure $next){
$response = $next($request);
echo $response;
echo '我是后置操作';
}
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門(mén)與進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- laravel利用中間件做防非法登錄和權(quán)限控制示例
- laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì)
- 淺談Laravel中的三種中間件的作用
- Laravel獲取當(dāng)前請(qǐng)求的控制器和方法以及中間件的例子
- laravel利用中間件防止未登錄用戶直接訪問(wèn)后臺(tái)的方法
- Laravel 6 將新增為指定隊(duì)列任務(wù)設(shè)置中間件的功能
- laravel框架中間件 except 和 only 的用法示例
- Laravel5.1框架注冊(cè)中間件的三種場(chǎng)景詳解
- 淺談laravel中間件的創(chuàng)建思路