【问题标题】:datetimepicker in Sonata Admin not workingSonata Admin中的日期时间选择器不起作用
【发布时间】:2015-11-16 10:54:58
【问题描述】:

如何在使用 sonata_type_datetime_picker 的 Sonata Admin Bundle 中创建日期时间字段?当我点击提交时,Symfony Profiler 将显示错误,如下图所示。

这是我的代码:

EventAdmin.php

class EventAdmin extends Admin
    {
        // Fields to be shown on create/edit forms
        protected function configureFormFields(FormMapper $formMapper)
        {
            $formMapper
                ->add('eventDate', 'sonata_type_datetime_picker', array(
                    'label' => 'Event Date',
                    'format' => 'YYYY-MM-DD HH:mm:ss',
                    'dp_language' => 'en',
                    'dp_side_by_side'       => true,
                    'dp_use_current'        => false,
                    'datepicker_use_button' => false,
                ))  
            ;
        }
    }

事件.php

    /**
     * @ORM\Column(type="datetime")
     */
    protected $eventDate;

    /**
     * Set eventDate
     *
     * @param \DateTime $eventDate
     *
     * @return Event
     */
    public function setEventDate($eventDate)
    {
        $this->eventDate = $eventDate;

        return $this;
    }

    /**
     * Get eventDate
     *
     * @return \DateTime
     */
    public function getEventDate()
    {
        return $this->eventDate;
    }

【问题讨论】:

  • 您是否尝试过 ->add('eventDate', 'sonata_type_datetime_picker') 没有任何选项?
  • @GeorgeIrimiciuc 是的,日期选择器在没有添加任何选项的情况下工作,因为它使用默认选项。 'format'=>DateTimeType::HTML5_FORMAT。如何指定自己的显示格式?
  • 我遇到了同样的错误 - 无论格式如何,错误都保持不变。 symfony 3.2.1,奏鸣曲管理员 3.1

标签: php symfony sonata-admin


【解决方案1】:

我相信您唯一的格式选择是这些字母的组合:

'format'=>"YYYY-MM-D h:mm:ss a" //2015-01-19 8:05:00 AM

您可以为不同的格式添加或减去每个字母。 例如,YYYY-MMM-DD HH:mm 将显示为 2015-Jan-19 08:05

【讨论】:

  • 如果我添加自己的选项而不是使用默认选项,它将显示错误。添加'format'会改变表单datetimepicker的显示格式,但是如果表单提交会产生错误。
  • 奇怪,我用你的所有设置运行了一个例子,它工作正常。它保留格式并将其保存在数据库中。您是否更新了架构? --dump-sql 向您展示了什么?也许您的数据库需要某种格式?
  • 分析器没有显示任何学说日志,所以我认为它是在保存到数据库之前发生的。它只显示 Flash 消息An error has occurred during the creation of item "AppBundle\Entity\Event:000000007701e48b000000001dceecdf".,并且 datepicker 字段以红色突出显示。可能是 html 验证错误?
  • 我在保存时没有收到错误消息,但是当我更改默认格式时日期搞砸了。我只是想删除 AM.PM 并使用 24 小时格式,例如 'format' => 'MMM d, YYYY, H:mm:ss'
  • 从那时起事情可能已经改变了。
猜你喜欢
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多