首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 5搜索DateTimeColumn数据表

Symfony 5搜索DateTimeColumn数据表
EN

Stack Overflow用户
提问于 2020-08-26 03:51:05
回答 1查看 384关注 0票数 1

我正在使用Omine Symfony DataTable包https://omines.github.io/datatables-bundle/#doctrine-orm来组织我的事件表。

我无法搜索属于Datetime列类型的"Début“和"Fin”列。我猜是因为这些是DateTime对象,所以我猜它找不到匹配项。

mytable

如果我输入"08/19/2020“,系统不会为我找到任何结果。

这里:https://datatables.net/forums/discussion/44218/how-do-i-search-on-a-datetime-column它建议在服务器端格式化日期,所以我尝试了一下(当然,j已经安装了date扩展以便能够使用date_format):

代码语言:javascript
复制
->createAdapter(ORMAdapter::class, [
    'entity' => Event::class,
    'query' => function (QueryBuilder $builder) use ($eventStatus) {
        $builder
            ->select('e')    
            ->addSelect('DATE_FORMAT(e.startDate, "%d/%m/%Y")')
            ->addSelect('ca')
            ->addSelect('ci')
            ->addSelect('u')  
            ->from(Event::class, 'e')
            ->join('e.category', 'ca')
            ->join('e.city', 'ci')
            ->join('e.user', 'u')
            ->andWhere('e.status = :status')
            ->setParameter('status', $eventStatus)
            ->orderBy('e.id', 'DESC')
        ;
    },
])

I also changed my dateStart column to TextColumn:

->add('startDate', TextColumn::class, ['label' => 'Début', 'field' => 'e.startDate', 'render' => function($value, $context) {
    return sprintf(
        '%s<br>
        %s',
        $value,
        $context->getStartAt()->format('H\hi'),
    );
}])

我有这样的错误:

未捕获QueryException\ ORM \ Query \ QueryException:“语法错误行0,第34列:错误:预期的StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression,got‘”“

我看不出问题出在哪里。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-10-21 20:34:17

很难从你问的问题中辨别出来,但是在你的代码中有一些看起来有问题的东西。

首先,您使用了自定义查询,但是没有对日期使用任何WHERE子句。

其次,您对列的格式未命名。无法访问结果,因为它没有名称。可以使用关键字AS对其进行命名

代码语言:javascript
复制
->addSelect('DATE_FORMAT(e.startDate, "%d/%m/%Y") AS startDateFormatted')

第三,使用joins,然后不应该使用ORMAdapter,而应该使用FetchJoinORMAdapter (这将帮助您在使用joins时解决分页问题)。

在我看来,您不应该尝试在查询中格式化startDate,而应该检查文档并使用Criteria

https://omines.github.io/datatables-bundle/#doctrine-orm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63586152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档