easyadmin 3 - 按链接实体的 属性 而不是 id 排序

easyadmin 3 - Sorting by linked entity’s property instead of id

我有一个实体 Hike 与另一个命名部门有关系

<?php
class Hike
{
    private $id;
    private $name;
    private $description;

    /**
     * @ORM\ManyToOne(targetEntity=Department::class, inversedBy="hikes")
     * @ORM\JoinColumn(nullable=false)
     * @Assert\NotBlank(message="libdepartmentRequired")
     */
    private $department;
    
    // ...
}
<?php
class Department
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=3)
     */
    private $department_code;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $department_nom;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Hike", mappedBy="department")
     */
    private $hikes;
    
    // ...
}

在 easyAdmin3 中渲染很好

但是当我按 department 排序时,我看到 easyAdmin3 按部门 ID 排序,我想按 department_nom

排序

我看到很多解决方案,但它们都使用 easyAdmin2 和 easy_admin.yaml,现在已不存在。

有办法实现吗?

使用 configureCrud。这样的事情应该可以解决问题。

public function configureCrud(Crud $crud): Crud
    {
        return $crud
            ->setDefaultSort(['departement' => 'DESC'])

        ;
    }

您也可以使用过滤器来获得想要的结果。