Это, наверное, что-то, что кто-то знает, кроме меня, я даже не знаю, что искать, кроме этого в заголовке.
Как laravel и т. Д. Использует промежуточное программное обеспечение метода в __construct, чтобы вызывать его только для определенных методов в этом классе?
public function __construct() {
$this->middleware('auth')->only(['index']);
}
public function index() {
//Do something as auth..
}
public function show() {
//Do something without auth..
}
Я сделал класс Auth:
class Auth
{
public static function user() {
//Check is user logged in and redirect if not
}
}
В основной класс контроллеров я добавил метод:
public function middleware($who) {
Auth::$who();
}
public function only(array $methods) {
//Use middleware on using these methods
}
Теперь вот где я глуп:
Когда я звоню, скажем:
$this->middleware('user');
Внутри какого-то метода он работает как положено.
Но когда я использую это в __constructor
, он запускается на всех методах, которые я вызываю, как я могу проверить, какие методы должны использовать этот метод промежуточного программного обеспечения из конструктора?