如何使用表单输入 CakePHP 3 自动获取日期下拉列表?
How to get date drop downs automatically with form input CakePHP 3?
所以我已经创建了一种添加推荐书的方法,并且有一个表格部分可以添加推荐书的日期。在我的数据库 table 中,它被设置为日期类型。在我的表格上我只有:
<?= $this->Form->input('testimony_date'); ?>
在我的 table 模型文件中有一个验证:
$validator
->add('testimony_date', 'valid', ['rule' => 'date'])
->requirePresence('testimony_date', 'create')
->notEmpty('testimony_date');
我模仿了这个相同的过程,将 presentation_date 添加到一个不同的表单,该表单将转到另一个控制器。日期下拉列表已自动添加到推荐添加表单中。演示表格不会自动添加日期。如果我这样输入表单,我可以获得下拉菜单:
<?= $this->Form->date('presentation_date'); ?>
推荐表的日期下拉菜单默认填写今天的日期。当我制作 $this->Form->date 时,演示文稿表单没有默认值或标签。我的问题是,为什么不像在推荐情况下那样自动添加下拉列表?
还有什么我想补充的吗?
推荐文件是使用烘焙功能创建的,演示文件是手动创建的。我检查以确保表单变量拼写正确。
因为你说 'presentation_date' 转到不同的控制器,我猜你有一个 'testimony' table 和一个单独的 'presentation' table ?
当您烘焙模板时,表单 class 使用您的 table 模型为您的 table 中的字段生成正确的输入模板。所以它适用于 'testimony_date' 因为你在模型中定义了它。
如果您 'mimicked' 见证模板中的用法,但没有实际字段 'presentation_date',Cake 不知道如何为其选择输入模板。
如果您有 'presentation' table 和 'presentation_date' 日期类型,也许您还没有为它烘焙模型?尝试烘焙模型(或 'all'),然后尝试放置
$this->Form->input('presentation_date',..)
在您的视图文件(模板文件)中。
注意:如果您烘焙 'all' 来创建模型、控制器和模板,请注意如果您自己编写控制器,它不会覆盖您的控制器。
看起来一切都很好,但由于某种原因,我服务器上的缓存干扰了内容的显示方式。一旦我清除了 tmp 模型文件夹,它就解决了这个问题。就像我说的,一切都被模仿了(实体,table,控制器,template/views)。无论如何,谢谢大家的帮助。
所以我已经创建了一种添加推荐书的方法,并且有一个表格部分可以添加推荐书的日期。在我的数据库 table 中,它被设置为日期类型。在我的表格上我只有:
<?= $this->Form->input('testimony_date'); ?>
在我的 table 模型文件中有一个验证:
$validator
->add('testimony_date', 'valid', ['rule' => 'date'])
->requirePresence('testimony_date', 'create')
->notEmpty('testimony_date');
我模仿了这个相同的过程,将 presentation_date 添加到一个不同的表单,该表单将转到另一个控制器。日期下拉列表已自动添加到推荐添加表单中。演示表格不会自动添加日期。如果我这样输入表单,我可以获得下拉菜单:
<?= $this->Form->date('presentation_date'); ?>
推荐表的日期下拉菜单默认填写今天的日期。当我制作 $this->Form->date 时,演示文稿表单没有默认值或标签。我的问题是,为什么不像在推荐情况下那样自动添加下拉列表?
还有什么我想补充的吗?
推荐文件是使用烘焙功能创建的,演示文件是手动创建的。我检查以确保表单变量拼写正确。
因为你说 'presentation_date' 转到不同的控制器,我猜你有一个 'testimony' table 和一个单独的 'presentation' table ?
当您烘焙模板时,表单 class 使用您的 table 模型为您的 table 中的字段生成正确的输入模板。所以它适用于 'testimony_date' 因为你在模型中定义了它。
如果您 'mimicked' 见证模板中的用法,但没有实际字段 'presentation_date',Cake 不知道如何为其选择输入模板。
如果您有 'presentation' table 和 'presentation_date' 日期类型,也许您还没有为它烘焙模型?尝试烘焙模型(或 'all'),然后尝试放置
$this->Form->input('presentation_date',..)
在您的视图文件(模板文件)中。
注意:如果您烘焙 'all' 来创建模型、控制器和模板,请注意如果您自己编写控制器,它不会覆盖您的控制器。
看起来一切都很好,但由于某种原因,我服务器上的缓存干扰了内容的显示方式。一旦我清除了 tmp 模型文件夹,它就解决了这个问题。就像我说的,一切都被模仿了(实体,table,控制器,template/views)。无论如何,谢谢大家的帮助。