在 SlimPHP 中访问路由组中的容器
accessing a container in route group in SlimPHP
我是 SlimPHP 框架的新手。我一直试图在路由组中获取一个容器,这是显示的错误:
PHP Warning: Missing argument 2 for Slim\App::get()
这是我的路线代码:
$app->group('/api', function() use ($app) {
$jwtMiddleware = $app->get('jwt');
$this->post('/auth/signup', 'RegisterController:signup');
$this->post('/auth/login', 'LoginController:login');
//User routess
$this->get('/user', 'UserController:getUser')->add($jwtMiddleware);
//$this->put('/user');
});
以及我容器的代码:
// Jwt Middleware
$container['jwt'] = function ($container) {
$jws_settings = $container->get('settings')['jwt'];
return new \Slim\Middleware\JwtAuthentication($jws_settings);
};
请问各位,可能是什么问题?
你可以这样获取容器:
$app->group('/api', function(\Slim\App $app) {
/* @var \Slim\App $this */
$jwtMiddleware = $this->getContainer()->get('jwt');
// ...
});
在 group
回调中 $app
和 $this
已经是您的 Slim\App
对象。你不需要 use ($app)
.
我是 SlimPHP 框架的新手。我一直试图在路由组中获取一个容器,这是显示的错误:
PHP Warning: Missing argument 2 for Slim\App::get()
这是我的路线代码:
$app->group('/api', function() use ($app) {
$jwtMiddleware = $app->get('jwt');
$this->post('/auth/signup', 'RegisterController:signup');
$this->post('/auth/login', 'LoginController:login');
//User routess
$this->get('/user', 'UserController:getUser')->add($jwtMiddleware);
//$this->put('/user');
});
以及我容器的代码:
// Jwt Middleware
$container['jwt'] = function ($container) {
$jws_settings = $container->get('settings')['jwt'];
return new \Slim\Middleware\JwtAuthentication($jws_settings);
};
请问各位,可能是什么问题?
你可以这样获取容器:
$app->group('/api', function(\Slim\App $app) {
/* @var \Slim\App $this */
$jwtMiddleware = $this->getContainer()->get('jwt');
// ...
});
在 group
回调中 $app
和 $this
已经是您的 Slim\App
对象。你不需要 use ($app)
.