本文實例講述了Laravel框架控制器的middleware中間件用法。分享給大家供大家參考,具體如下:
場景:活動開始前只能訪問宣傳頁面,開始后才可以訪問其他頁面:
步驟:
新建中間件,
注冊中間件,
使用中間件,
中間件的前置和后置操作。
控制器:
public function activity0(){
return '活動快要開始啦,敬請期待';
}
public function activity1(){
return '活動頁面1';
}
public function activity2(){
return '活動頁面2';
}
路由:
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::any('activity1',['uses'=>'StudentController@activity1']);
Route::any('activity2',['uses'=>'StudentController@activity2']);
在App\Http\Middleware下創建中間件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);
}
}
//注冊中間件,在Kernel.php中的$routeMiddleware數組中增加
protected $routeMiddleware = [
'activity' => \App\Http\Middleware\Activity::class,
];
使用中間件,路由中的設置
//宣傳頁面不需要中間件驗證,不能放里邊
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 '我是后置操作';
}
更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。
您可能感興趣的文章:- laravel利用中間件做防非法登錄和權限控制示例
- laravel在中間件內生成參數并且傳遞到控制器中的2種姿勢
- 淺談Laravel中的三種中間件的作用
- Laravel獲取當前請求的控制器和方法以及中間件的例子
- laravel利用中間件防止未登錄用戶直接訪問后臺的方法
- Laravel 6 將新增為指定隊列任務設置中間件的功能
- laravel框架中間件 except 和 only 的用法示例
- Laravel5.1框架注冊中間件的三種場景詳解
- 淺談laravel中間件的創建思路