【问题标题】:Names of HTML form naming conventionsHTML 表单命名约定的名称
【发布时间】:2010-01-26 20:59:21
【问题描述】:

在 Rails 和 CakePHP1.2 中,表单倾向于包含名称如下的输入元素:

<input name="comment[author]" />

“名称”属性中使用的符号有正式名称吗?

同样,在 CakePHP1.1 中,我相信同样的情况应该是这样的:

<input name="comment/author" />

同样,“name”属性中使用的符号有正式名称吗?

【问题讨论】:

  • 当它起源于 PHP 时,我认为它最初并没有名字。它只是被视为复制了语言内数组取消引用格式a[b]。从那时起,PHP 数组取消引用已被要求使用引号 (a['b']),因为否则它非常模糊,但 name 格式尚未更新以匹配。其他一些环境采用了 PHP 的语法,但也有许多环境采用了替代方案(例如,a.b)。
  • 我称它为“命名空间”,因为它将使用特定键形成请求->数据数组。在这种情况下,CakePHP 以这种方式执行此操作是特定于框架的事情。因此,将其与其他人进行比较是没有意义的,或者将其作为某种 IMO 的通用问题。

标签: ruby-on-rails cakephp naming-conventions theory cakephp-1.2


【解决方案1】:

在 Rails 中,这被称为表单微格式(至少在某些人看来)。许多不同的框架似乎都在对第一种格式进行标准化。我想 CakePHP 已经更新了他们的库以符合该标准。有an obsessively in-depth explanation 可用,它只是在某种程度上特定于Rails。原始微格式显然来自 PHP。

【讨论】:

    【解决方案2】:

    在 cake php 中,命名方案是多维数组访问格式,虽然我不确定你会怎么称呼它。多维数组键控?

    official php docs 称之为“方括号符号”

    基本上,我不确定 cakephp 对此有一个特定的名称...这是因为它只是用于键控数组访问的“括号表示法”。

    Here's an example from the cakephp docs。它说明了在 cakephp 中使用括号表示法命名元素,以及如何使用它来预填充值。

    使用 cake php FormHelper 我们创建一个隐藏的 id 字段:

    echo $this->Form->hidden('id'):
    

    这会输出以下内容:

    <!-- data comes from $this->request->data -->
    <input name="data[User][id]" id="UserId" type="hidden" />
    

    假设data[User][id]持有的值为10,则ID为UserId的输入值将是10。

    【讨论】:

    • 如果您可以提供引文,绿色勾号就是您的了。
    【解决方案3】:

    在 Rails 中,分配给表单元素中 name 属性的字符串值作为 params[] 散列内的散列传递给控制器​​,由键索引。

    <input name="username"/>
    

    将在控制器中显示为params[:username]

    <input name="user[name]"/>
    

    将在控制器中显示为params[:user][:name]

    等等。如果您想了解更多关于如何生成这些以及预期内容的信息,请参阅 ActionView 和 ActionController 文档。

    这是ActionController overview 的链接,这是一个很好的指南。

    【讨论】:

    • 我的问题不是关于如何解释名称,而是关于用于描述这种命名约定或格式的术语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多