PHP联盟/路由post请求对象
我正在使用league/route为我的应用程序处理路由 我有一条邮政路线:PHP联盟/路由post请求对象,php,post,request,response,router,Php,Post,Request,Response,Router,我正在使用league/route为我的应用程序处理路由 我有一条邮政路线: $router = new RouteCollection; $router->post('/url', 'MyClass::myMethod'); ...$dispatcher->dispatch(...)->send(); 在我的方法中: class MyClass { public function myMethod(Request $request) { var_d
$router = new RouteCollection;
$router->post('/url', 'MyClass::myMethod');
...$dispatcher->dispatch(...)->send();
在我的方法中:
class MyClass {
public function myMethod(Request $request) {
var_dump($request->request);
}
}
传递的请求对象只是HttpFoundation\request的一个新实例,而不是应用程序已处理的实际请求,即没有post数据。要获取post数据,我需要执行以下操作:
$request = Request::createFromGlobals();
在我的方法之内。这使得传递给我的方法的请求对象无效。我如何配置Route来传递实际请求,以便在不必创建自己的请求对象的情况下获取post数据?RouteCollection对象接受league/container的依赖项,即依赖项注入容器。这是调用控制器时从中提取请求对象的位置 通过设计,请求对象不是为您构建的,以防您想自己对其执行任何特定操作,因此,它需要在容器中定义,或者每次都会返回一个空白请求。计划在路由器的第2版中对此进行修正,因为在不久的将来我会发布此消息 所以需要这样的东西
<?php
$container = new League\Container\Container;
$container->add('Symfony\Component\HttpFoundation\Request', function () {
return Symfony\Component\HttpFoundation\Request::createFromGlobals();
});
$router = new League\Route\RouteCollection($container);
$router->post('/url', 'MyClass::myMethod');
// ...
$dispatcher->dispatch(/* ... */)->send();
目前面临同样的问题,github在skeleton应用程序上发布了404。您好,Philipo,Philipp,这里是“建议编辑评论”。您链接的示例框架应用程序似乎不再可用。然而,您几天前创建了github回购协议。因为它是空的,我同意删除不存在的回购协议的链接,但也许你想再次添加回购协议。