webman取参方式咨询

张大娃

问题描述

是否支持如下所示方式获取put和delete请求参数,是否支持数组取参并且设置默认值呢?
Request::put('name');
Request::delete('name');
Request::param(['name'=>'']);

573 2 1
2个回答

北月
  1. 你说的这些方法都不支持。

  2. 某些 web server 会直接忽略 GETDELETE 请求的 Body 部分,只支持 URI 参数,而 POSTPUT 请求又直接忽略 URI 参数。

  3. Workerman/WebmanURI 参数归到了 GET 请求里面,把 Body 参数归到了 POST 请求里面了。

所以实际上不管你用 GETPOSTPUTDELETE 等的任何请求,如果参数放到 URI 中,你可以使用 $request->get('name') ,如果参数放到 Body 里面,那么可以使用 $request->post('name') 。为了方便获取请求参数,可以使用 $request->input('name') 获取 URIBody 的参数,而不用在意是何种请求。

如果你非要使用 Request::put('name')Request::delete('name')Request::param(['name'=>'']) ,可以自己重写一下 support/Request 类,增加几个方法即可。上面说过了,URIBody 参数分别被归到了 GETPOST 请求参数里面了,所以可以使用 $request->all() 可以获取所有参数,然后自己做判断即可。

liziyu

webman:“咱主打一个快,出了名的快”!

  • efnic 2023-07-16

    官方文档在这https://www.workerman.net/doc/webman/request.html
    介绍的很清楚了;学习能力是一个程序员的基本修养。

🔝