<?php
class check
return $next($request);
}}
中介軟體的入口執行方法必須是 handle 方法,而且第乙個引數是 request 物件,第二個引數是乙個閉包,在一些情況下允許有第三個引數
在路由中直接註冊中介軟體:
route::get('hello/:name', 'index/hello')->middleware('check'); //check為上面 中介軟體的結構 中的例子的中介軟體類名
支援多個中介軟體:
route::get('hello/:name', 'index/hello')->middleware(['check','auth']);
此外,在應用配置檔案目錄(即 config 資料夾)下的 middleware.php 檔案中可以設定中介軟體的別名:
return [
];
然後在路由中就可以這樣使用中介軟體了:
route::get('hello/:name', 'index/hello')->middleware('check');
route::get('hello/:name', 'index/hello')->middleware(['check','auth']);
在新版本中,別名還可以定義一組中介軟體:
return [
'check' => [
]];
這樣可以實現使用乙個別名,註冊多個中介軟體
<?php
return [
'check',
];
在 index 模組下定義 middleware.php ,為當前模組下的所有控制器方法註冊中介軟體:
return [
'check',
];
控制器繼承系統的think\controller
類,在控制器中定義 protected 屬性的 middleware ,如下,當前控制器方法就會呼叫相應的中介軟體:
<?php
use think\controller;
class index extends controller
public function hello()
}
同時在控制器中,對中介軟體配置except
或者only
屬性,可以控制中介軟體是否生效:
<?php
use think\controller;
class index extends controller
public function hello($name = 'thinkphp5')
}
傳參的幾種方式:
route::get('hello/:name', 'index/hello')->middleware('check:value');//只能使用中介軟體類名,無法使用別名
route::get('hello/:name', 'index/hello')->middleware(check::class,'value');
route::get('hello/:name', 'index/hello')->middleware('check','value');
route::get('hello/:name', 'index/hello')->middleware('check','value');
route::get('hello/:name', 'index/hello')->middleware([check::class, 'auth'], 'value');//兩個中介軟體傳同樣的引數,可以使用別名或者中介軟體類名
route::get('hello/:name', 'index/hello')->middleware(['check:value1', 'auth:value2']);//兩個中介軟體傳不同的引數,不可以使用別名
在 check 中介軟體中的 handle 方法中,就可以使用第三個引數來接收額外的引數 value 了。 ThinkPHP5 1中介軟體在控制器中使用過程
使用中介軟體的開始以及我的步驟描述,希望可以幫到才學php 或者才學think框架的你們希望能夠與你們交流,讓自己進步。中介軟體在thinkphp框架中的作用我已經明白了,就是在請求即將達到應用層之前,對使用者訪問資源時候,產生的header頭 或者 使用者的請求引數時候輸入的post 或get 或...
thinkphp5 1 中介軟體是什麼有什麼用
中介軟體主要用於攔截或過濾應用的http請求,並進行必要的業務處理。tp5.1手冊 也就是說,降低了系統的耦合 在http請求階段,執行中介軟體的入口執行方法 handle tp5.1 減少了系統的一些if else判斷,因此降低了系統的耦合 中介軟體可以實現什麼功能,例如許可權驗證,訪問記錄,重定...
thinkphp5 1 中介軟體是什麼,有什麼用
中介軟體是什麼?有什麼作用?中介軟體主要用於攔截或過濾應用的http請求,並進行必要的業務處理。tp5.1手冊 也就是說,降低了系統的耦合 在http請求階段,執行中介軟體的入口執行方法 handle tp5.1 減少了系統的一些if else判斷,因此降低了系統的耦合 中介軟體可以實現什麼功能,例...