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 '我是后置操作';
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM