什么是HTTP中的嵌套参数?

10
Laravel验证文档 中提到了 "嵌套参数":

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

$this->validate($request, [
    'title' => 'required|unique:posts|max:255',
    'author.name' => 'required',
    'author.description' => 'required',
]);
这个嵌套的HTML应该长什么样?我在谷歌上搜了一下,除了表单嵌套的内容外,没有找到其他有用的信息。还有,“点”语法,这是Laravel特有的吗?
这个嵌套的HTML应该长什么样?我在谷歌上搜索后,只找到了有关表单嵌套的内容。此外,“点”语法是特指 Laravel 吗?

1
这并不是什么魔法。只需使用 name="author.name" 即可。 :-) - arkascha
1
此外,访问变量的 . 语法是 Laravel 的一个特性,用于访问数组值(如上所示)或访问文件/文件夹层次结构,例如 return view("folder.file") - Tim Lewis
他们提到这个有点让我困惑,让我觉得它是一种特殊的东西。在HTML中是否有一种方法可以语义化地嵌套表单元素,除了注释以外?这将使代码更易读,同时对渲染没有任何影响。 - KJdev
@TimLewis 确实,谢谢你提到了这一点。这正是让我认为它是这个特殊的东西的原因。 - KJdev
@arkascha 或 Tim Lewis,你们俩能否将你们的评论合并成一个答案,这样我就可以将其标记为答案了吗?否则我会在一周左右自行处理 ;) - KJdev
1
@DaJF 不要难过,伙计,这也让我感到困惑,我开始搜索以了解它们是什么,你的问题完全合理。我想知道HTML语法会是什么样子,虽然我猜测它可能是一个数组语法<input name="something['nested']">或者只是名称中的一个点“something.name”,但laravel文档含糊不清,而且你永远不知道,在某个时候,新版本的HTTP会引入新的东西。 - Neo
2个回答

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

验证 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 获取一些示例!


-1

HTML表单看起来就像什么也没有


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接