如何解决新 Sonata Page Bundle 站点上的“Enabled from”无效
我有一个全新安装的 Sonata Page Bundle。我正在使用站点管理屏幕创建站点实体。
我使用捆绑包附带的 DateTimePicker 来选择“启用自”日期。选择器创建此日期:May 27,2021,6:40:43 pm
然后我保存页面。验证器告诉我“此值无效”。在同一页面的选择器生成的字符串上!
这是一个已知的错误吗?还是我做错了什么?我会把这个留空,但该字段是强制性的。
作为参考,composer 说我有 page-bundle 版本 3.22.2,packagist 说这是最新的稳定版本。 admin-bundle 的版本是 3.100.2。
另作参考:我的 Firefox 浏览器设置为使用美式英语作为其语言,以防万一。
解决方法
我用 PHP 7.4.2 安装了一个 symfony (v4.4.25) + 奏鸣曲项目来重现这个,我没有这个错误,我的浏览器也是英文的。
您应该验证您是否缺少 moment.min.js 或任何 javascript。在提交事件时,javascript 应该将日期格式更改为数据库友好格式,对我来说是 mysql。
在安装了带有配方的奏鸣曲包之后(为了避免手动进行所有配置),我添加到了sonata_admin.yaml
assets:
extra_javascripts:
- bundles/sonatapage/sonata-page.back.min.js
extra_stylesheets:
- bundles/sonatapage/sonata-page.back.min.css
我在 /admin/app/sonatapagesite/1/edit 上出现以下错误
Too few arguments to function Sonata\Form\Type\BasePickerType::__construct(),0 passed in /Users/hyper/Work/Stackoverflow/so/vendor/symfony/form/FormRegistry.php on line 91 and exactly 3 expected
为了修复它,我添加了 bundles.php
Sonata\Form\Bridge\Symfony\SonataFormBundle::class => ['all' => true],
,
看起来验证器做错了什么,因为它需要不同的格式(可能是 yyyy-mm-dd)。
我找到了@Capfer 对一个可能有用的类似问题的回答。他基本上改变了表单类型的预期日期格式。
$formMapper
->add('dateOfAdoption','sonata_type_datetime_picker',[
'dp_default_date' => $container->getCreatedAt()->format('d M. Y H:i '),'datepicker_use_button' => true,'mapped' => false,]
);
Note:
d - The day of the month (from 01 to 31)
M - A short textual representation of a month (three letters)
Y - A four digit representation of a year
H - 24-hour format of an hour (00 to 23)
i - Minutes with leading zeros (00 to 59)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。