http中的嵌套参数是啥?

Posted

技术标签:

【中文标题】http中的嵌套参数是啥?【英文标题】:What are nested parameters in http?http中的嵌套参数是什么? 【发布时间】:2016-10-27 06:46:32 【问题描述】:

在Laravel Docs on validation 中,他们谈到了“嵌套参数”:

如果您的 HTTP 请求包含“嵌套”参数,您可以使用“点”语法在验证规则中指定它们:

$this->validate($request, [
    'title' => 'required|unique:posts|max:255',
    'author.name' => 'required',
    'author.description' => 'required',
]);

这种嵌套的 html 会是什么样子?我四处搜索,除了表单嵌套之外什么也没找到。另外,"dot" syntax,这是 Laravel 特有的吗?

【问题讨论】:

这没什么神奇的。只需使用name="author.name"。 :-) 另外,访问变量的.语法是Laravel的一个特性,用于访问数组值(如上)或访问文件/文件夹层次结构,如return view("folder.file") 他们提到它让我有点困惑,让我觉得这是一些特别的事情。有没有办法在 HTML 的表单中语义嵌套东西,bar cmets?它会使代码更具可读性,同时对渲染没有影响。 @TimLewis 是的,感谢您提及这一点。这实际上让我觉得这是一件特别的事情 @DaJF 伙计,别难过,这也让我大吃一惊,我开始搜索它们是什么,你的问题是完全正确的。我想看看 HTML 语法是什么样的,而我猜它要么是数组语法 要么只是名称“something.name”中的一个点,但 laravel doc 含糊不清,你永远不会知道,在某个时候,新版本的 HTTP 会引入新事物。 【参考方案1】:

Html 表单看起来没什么了

【讨论】:

【参考方案2】:

点表示法是为了方便地访问数组元素,并使它们的选择器更加“流畅”。

验证author.name 相当于检查输入<input type="text" name="author[name]" /> 的值。

这使得拥有多模型表单或对相关数据进行分组变得更好 =)。然后,您可以通过执行$request->request('author'); 之类的操作来获取该事物的所有数据,这将为您提供使用author[*] 提交的所有值的集合/数组。 Laravel 也将它与它的配置访问器一起使用 - 所以 config.setting.parameter 相当于 config[setting][parameter]

基本上使处理数组数据更容易。

有关示例,请参阅 https://github.com/glopezdetorre/dot-notation-access!

【讨论】:

以上是关于http中的嵌套参数是啥?的主要内容,如果未能解决你的问题,请参考以下文章

嵌套查询与连接查询的区别是啥

从嵌套在 Firestore 文档中的集合中获取数据的最佳方法是啥?

Rails URL 的嵌套路由和参数(最佳实践)

使用 MongoDB 的 Rust 驱动程序访问嵌套结构中的数据的最佳方式是啥,所有这些都是可选的?

为clojure编写嵌套定义语句(如在方案中)的标准方法是啥?

开放式加速器 | Fortran 90:并行化嵌套 DO 循环的最佳方法是啥?