【问题标题】:Date dropdown from MongoDB in Symfony2?Symfony2中MongoDB的日期下拉列表?
【发布时间】:2015-01-18 13:24:42
【问题描述】:

我正在尝试使用实体(文档)表单类型在使用 Symfony 2 的选择(下拉)字段中从 MongoDB 数据库、自定义查询中列出特定日期。

我正在尝试以下方法:

$defaultData = array();
    $form = $this->createFormBuilder($defaultData)
                ->add('date', 'document', array(
                    'class' => 'MyBundle:Items',
                    'property' => 'date',
                    'query_builder' => function(DocumentRepository $dr) {
                        return $dr->createQueryBuilder('Items')
                            ->field('user')->references($this->getUser());
                    },
                ))
                ->add('Search', 'submit')
                ->getForm();

这会在树枝模板中返回错误“DateTime 类的对象无法转换为字符串”。

有没有办法将 DateTime 格式化为表单输出中的字符串,或者有没有办法通过日期字段来实现这一点?非常感谢任何帮助和示例。谢谢你。

【问题讨论】:

    标签: php mongodb symfony


    【解决方案1】:

    您应该只添加一个返回您希望格式化的日期的方法:

    class Items 
    {
         private $date;
         //....
         public function getDate()
         {
              return $this->date;
         }
         //....
         public function getDateString()
         {
              return $this->date->format('d-m-Y');
         }
         //....
    

    并且只需将该方法用作表单字段中的属性:

    ->add('date', 'document', array(
          'class' => 'MyBundle:Items',
          'property' => 'date_string',
    

    【讨论】:

    • 跟进,我如何才能使用上面的上下文只选择不同的值?谢谢。
    • 更新您的查询以仅选择不同的值。
    • 我想我在问这个上下文中的语法是什么,因为我试过 $dr->createQueryBuilder('Items')->distinct('date')->getQuery()->execute () 并且它不适用于:给定类型为“Doctrine\ODM\MongoDB\Query\Builder”、“Doctrine\MongoDB\ArrayIterator”的预期参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多