微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

新 Sonata Page Bundle 站点上的“Enabled from”无效

如何解决新 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) + 奏鸣曲项目来重现这个,我没有这个错误,我的浏览器也是英文的。

enter image description here

enter image description here

您应该验证您是否缺少 moment.min.js 或任何 javascript。在提交事件时,javascript 应该将日期格式更改为数据库友好格式,对我来说是 mysql。

enter image description here

在安装了带有配方的奏鸣曲包之后(为了避免手动进行所有配置),我添加到了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 对一个可能有用的类似问题的回答。他基本上改变了表单类型的预期日期格式。

Link

$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 举报,一经查实,本站将立刻删除。