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

Laravel 使用表单编码的点路径属性创建对象,laravel,post,dingo-api,Laravel,Post,Dingo Api,在laravel/dingo中,您可以通过将数据发布为application/x-www-form-urlencoded或application/json来创建新对象: $ curl -XPOST --data name=foo http://example.org/user JSON: 两者都很好 我现在要做的是创建具有嵌套属性的对象,例如name.first。这在发布JSON时效果很好: $ curl -XPOST -H 'Content-type: application/json'

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

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

两者都很好


我现在要做的是创建具有嵌套属性的对象,例如
name.first
。这在发布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
例外情况是
名称。第一个字段是必需的


我知道PHP:

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

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


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

请使用

$ curl -XPOST --data name%5Bfirst%5D=foo http://example.org/user
这等于
name['first']=foo

:)

请使用

$ curl -XPOST --data name%5Bfirst%5D=foo http://example.org/user
这等于
name['first']=foo

:)