你null回来了$request->put('param')因为你试图在POST路线上打电话.在获得参数之前,您需要创建一个单独的PUT路径(或使用map和via)PUT.
此外,我不建议将HTTP动词添加到路由中.这导致一些非常令人困惑的架构.
添加其他路线:
$app->post('/api/something/:id', function () {});
$app->put('/api/something/:id', function () {});
Run Code Online (Sandbox Code Playgroud)
使用自定义HTTP方法(map和via)
$app->map('/api/something/:id', function () {})->via('POST', 'PUT');
Run Code Online (Sandbox Code Playgroud)
请参阅PUT路由文档,并特别注意方法覆盖部分.
更新:工作示例
这是一个示例PUT请求我掀起:
$app->put('/test/:id', function ($id) use ($app) {
$name = $app->request->put('name');
echo sprintf('PUT request for resource id %d, name "%s"', (int) $id, $name);
});
Run Code Online (Sandbox Code Playgroud)
我从命令行用cURL调用它,如下所示:
curl -X PUT -d name=arthur http://slim-tutorial.dev/test/2
Run Code Online (Sandbox Code Playgroud)
结果:
PUT request for resource id 2, name "arthur"%
Run Code Online (Sandbox Code Playgroud)
如果你有一个工作的Slim应用程序并且以上对你不起作用,可能问题是在Slim之外的某个地方,可能是你在测试路线或测试参数中的错误.
| 归档时间: |
|
| 查看次数: |
5642 次 |
| 最近记录: |