Easy Admin 3 按日期排序返回:create_date 没有名为 create_date 的字段或关联

Posted

技术标签:

【中文标题】Easy Admin 3 按日期排序返回:create_date 没有名为 create_date 的字段或关联【英文标题】:Easy Admin 3 Sort by date returns: create_date has no field or association named create_date 【发布时间】:2021-09-12 08:47:02 【问题描述】:

我正在尝试按 asc 或 desc 日期对字段进行排序。

当我像这样将日期字段添加到我的后端时

DateTimeField::new('create_date', 'Create Date')->setSortable(true),

它可以工作并且显示,但是当我尝试对其进行排序时,我得到以下错误

[Semantical Error] line 0, col 62 near 'create_date ': Error: Class App\\Entity\\MyEntitiy has no field or association named create_date File:/home/wwwroot/htdocs/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php Line: 63

有谁知道为什么或如何发生这种情况?

谢谢

编辑:这是 MyEntity 中的字段

   /**
     * @var \DateTime|null
     *
     * @ORM\Column(name="create_date", type="datetime", nullable=true)
     */
    private $createDate;


 /**
 * Returns the CreateDate
 *
 * @return \DateTime|null
 */
public function getCreateDate(): ?\DateTime

    return $this->createDate;



/**
 * Sets the CreateDate
 *
 * @param \DateTime|null $createDate
 * @return void
 */
public function setCreateDate(?\DateTime $createDate)

    $this->createDate = $createDate;

【问题讨论】:

好吧..我们可以看到您的实体,尤其是您的财产“create_date”吗?这似乎不存在? 是的,这就是问题所在。确实如此。我将分享它:D 请看帖子,我加了。 @DylanKas 奇怪的行为是我看到列表中的所有日期,只是当我点击对它们进行排序时,我得到了错误。 【参考方案1】:

您没有尊重您的财产的正确拼写。

在您的实体中,该字段称为 createDate,因此您在配置 crud 时应使用相同的名称。

在你的情况下:

DateTimeField::new('createDate', 'Create Date')->setSortable(true),

【讨论】:

以上是关于Easy Admin 3 按日期排序返回:create_date 没有名为 create_date 的字段或关联的主要内容,如果未能解决你的问题,请参考以下文章

返回按日期排序的数据

如何在 SOLR 中按日期排序?

SUM 行、返回计数和按日期排序

连接两个查询的结果

SQL多表联合查询按日期排序

按相关实体字段排序 Sonata Admin 中的列表视图