使用表单编码的点路径属性创建对象

时间:2016-11-30 13:19:17

标签: laravel post dingo-api

在laravel / dingo中,您可以通过将数据张贴为application/x-www-form-urlencodedapplication/json来创建新对象:

$ curl -XPOST --data name=foo http://example.org/user

JSON:

$ curl -XPOST -H 'Content-type: application/json' --data '{"name":"foo"}' http://example.org/user

两者都很好。

我现在要做的是创建具有嵌套属性的对象,例如name.first。这在POST JSON时工作正常:

$ curl -XPOST -H 'Content-type: application/json' --data '{"name":{"first:"foo"}}' http://example.org/user

但是在使用表单编码数据时失败了:

$ curl -XPOST --data name.first=foo http://example.org/user

例外是The name.first field is required

我知道PHP converts dots to underscores

  

PHP会自动用下划线替换传入变量名中的任何点。

这可能是laravel没有将变量检测为嵌套的原因。

如何让laravel正确检测变量名中的点路径?

1 个答案:

答案 0 :(得分:0)

请使用

$ curl -XPOST --data name%5Bfirst%5D=foo http://example.org/user

等于name['first'] = foo

:)