【问题标题】:CakePhp FormHelper - Date field issueCakePhp FormHelper - 日期字段问题
【发布时间】:2015-04-19 15:19:22
【问题描述】:

在“注册”操作的“视图”中,我尝试为出生日期创建一个日期字段。

echo $this->Form->input("Member.dateofbirth", array(
            "label" => "Date of birth",
            "name" => "date_of_birth",
            "id" => "date_of_birth",
            "empty" => true,
);

但是当我使用提交按钮发送数据并创建debug() 时,我看到$this-> request->data["date_of_birth"] 只包含年份,不包含月份和日期。

debug($this->request->data["date_of_birth"]);

调试结果:

array(
    'date_of_birth' => '1990'
)

【问题讨论】:

  • 数据库中字段的类型是什么?
  • 日期(这是一个 MySQL 数据库)
  • 您是否尝试使用默认字段名称?我的意思是,删除 FormHelper 中的 "name" 选项。
  • 太棒了!它奏效了:D 感谢您的时间;)

标签: date cakephp formhelper


【解决方案1】:

我猜如果你在FormHelper中设置name选项,它只会修改第一个输入的名称(日期字段有3个输入)。这就是为什么当您尝试读取具有该名称的字段时,您只会得到年份。

如果您真的不需要不同的输入名称,您应该坚持使用默认值。

因此,在这种情况下,删除 FormHelper 中的 name 选项将允许您读取像 $this->request->data["Member"]["dateofbirth"] 这样的字段

【讨论】:

  • 这很奇怪,因为它改变了三个输入的名称。但无论如何,你解决了我的问题,谢谢! ;)
  • 那么,您最终得到了三个名称为"data[Member][date_of_birth][year]""data[Member][date_of_birth][month]""data[Member][date_of_birth][day]" 的输入?如果是这样,那么您应该像$this->request->data["Member"]["date_of_birth"] 一样阅读它
  • 不,他们都有相同的名字“date_of_birth”:D 我想这就是问题所在。当我尝试使用 $date_of_birth 访问这三个信息时,只存储了最后一个。
  • 好的,我现在明白了。我猜你在使用FormHelper 时不应该在日期字段中使用idname 选项,因为它会生成错误的html。如果您需要更改这些属性,您应该创建 3 个不同的字段。
  • 是的,你是对的。只是我不喜欢那些长名字。 :D 再次感谢您的帮助! ;)
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2012-01-04
  • 2017-02-05
  • 2023-03-20
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多