gpt4 book ai didi

symfony - Sonata admin - 相关表中的 "order by"字段

转载 作者:行者123 更新时间:2023-12-02 12:20:04 24 4
gpt4 key购买 nike

我有一个产品管理类(class)。 Product 实体与 Category 实体具有多对一关系,即产品与类别相关联。

在产品的管理“列表”页面中,我需要按每个产品关联的类别名称(按字母顺序)排序。

如果字段位于实体本身上,则设置默认排序依据字段很容易(请参阅 Sonata admin bundle order 了解如何执行此操作)。但我不知道如何按相关表中的字段进行排序。

感谢任何帮助。

最佳答案

这似乎是一种解决方法,但它确实有效。您必须添加一个覆盖 createQuery() 方法的连接,而不是分配一个覆盖 $datagridValues 的默认 sortBy:

<?php
use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery;

class ExpenseAdmin extends Admin
{
protected $datagridValues = array(
'_page' => 1,
'_sort_order' => 'ASC', // sort direction
'_sort_by' => 'c.name' // field name
);

/**
* @return \Sonata\AdminBundle\Datagrid\ProxyQueryInterface
*/
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);

return new ProxyQuery($query
->join(sprintf('%s.category', $query->getRootAlias()), 'c'));
}
}

关于symfony - Sonata admin - 相关表中的 "order by"字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com