CakePHP 4 如何将月份输入字段显示为数字?
CakePHP 4 How can I display month input field as a number?
在 cakephp 3.x 中,我通过传递 false 使用 monthNames 属性将月份显示为数字。就像下面的例子。
echo $this->Form->month('mob', ['monthNames' => false]);
在版本 4.x 中,此示例代码已从文档中删除
https://book.cakephp.org/4/en/views/helpers/form.html#creating-month-controls
如何将 monthNames 显示为数字。我可以像下面那样做
<?= $this->Form->select('mob',[1,2,3,4...]) ?>
cakephp 中 monthNames 属性的替代方法是什么 4.x ?
没有内置替代方案,该选项刚刚被删除,CakePHP 4 将 date/time 相关控件切换为使用本机输入类型,考虑到浏览器采用率的增长。
Thr 结果只是一个 select
的输入,无论如何都是从 1 到 12 的值,所以你可以复制它。应该注意的是 select 选项将使用数组键作为值,数组值作为标签,所以如果你不希望你的月份值以 0
开头,你必须提供键从 1
开始。不过这很简单:
$options = array_combine(range(1, 12), range(1, 12));
如果您想从 CakePHP 3 复制默认值,那么您需要更多的逻辑,因为它使用零填充键和值 - 仍然很容易:
$options = collection(range(1, 12))
->map(function ($val) { return sprintf('%02d', $val); })
->indexBy(function ($val) { return $val; })
->toArray();
在 cakephp 3.x 中,我通过传递 false 使用 monthNames 属性将月份显示为数字。就像下面的例子。
echo $this->Form->month('mob', ['monthNames' => false]);
在版本 4.x 中,此示例代码已从文档中删除
https://book.cakephp.org/4/en/views/helpers/form.html#creating-month-controls
如何将 monthNames 显示为数字。我可以像下面那样做
<?= $this->Form->select('mob',[1,2,3,4...]) ?>
cakephp 中 monthNames 属性的替代方法是什么 4.x ?
没有内置替代方案,该选项刚刚被删除,CakePHP 4 将 date/time 相关控件切换为使用本机输入类型,考虑到浏览器采用率的增长。
Thr 结果只是一个 select
的输入,无论如何都是从 1 到 12 的值,所以你可以复制它。应该注意的是 select 选项将使用数组键作为值,数组值作为标签,所以如果你不希望你的月份值以 0
开头,你必须提供键从 1
开始。不过这很简单:
$options = array_combine(range(1, 12), range(1, 12));
如果您想从 CakePHP 3 复制默认值,那么您需要更多的逻辑,因为它使用零填充键和值 - 仍然很容易:
$options = collection(range(1, 12))
->map(function ($val) { return sprintf('%02d', $val); })
->indexBy(function ($val) { return $val; })
->toArray();