超薄控制器请求,响应和参数不可用

时间:2017-05-15 20:09:19

标签: php slim slim-3

我需要的是:使用自定义类接收HTTP请求并处理它。

到目前为止我所拥有的:

$app->group('/user', function () use ($app) {
   $app->post('/login', Auth::class . ':login');
}

在我的Auth课程中:

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
// also tried: use Slim\Http\Request; use Slim\Http\Response;

class Auth {

protected $container;

public function __construct(&$c) {
    $this->container = $c;
}

public function login(Request $request, Response $response, $args) {
     // NEED TO GET GET/POST/PUT Params here
     // When I Try to print $request, $response or $args, it returns empty
}

我的代码在函数登录中显示了我需要的内容:获取http参数和请求/响应/参数参数。 (我想在一个类中实现很多函数,我的意思是,我不想使用__invoke()) 我不明白的另一件事是,如果我做了类似的事情     return $ response-> withJson($ somearraydata,200); 变量$ response实际上有效。为什么呢?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

我想我已经弄清楚了,
永远不会设置$ args(除非它是get),但请求和响应是。

并且,为了得到参数,我可以这样做: $请求 - > getParsedBody()['属性']

希望这有助于某人。 :)