gpt4 book ai didi

php - 如何在 Typo3 的默认存储库功能中设置排序?

转载 作者:行者123 更新时间:2023-12-05 08:54:17 25 4
gpt4 key购买 nike

我是这样写的

/**
* itemRepository
*
* @var \KRT\KrtEmployee\Domain\Repository\ItemRepository
* @inject
*/
protected $itemRepository = null;

/**
* action list
*
* @return void
*/
public function listAction()
{
$arguments =$this->request->getArguments();

$employees = $this->itemRepository->findAll();
$this->view->assign('employees',$employees);
}

在我的$employees 结果中有

  • 员工 ID(默认 uid)
  • 姓名
  • 指定
  • 部门
  • 工资

现在,如何根据

升序顺序对结果数组进行排序
  1. 姓名
  2. 部门及薪资

是否有任何默认函数可以在存储库查询中进行排序?

最佳答案

每个存储库都有一个 $defaultOrderings 属性,您可以在其中指定应用于所有查询方法的默认顺序。在您的情况下,它可能看起来像这样:

protected $defaultOrderings = [
'name' => QueryInterface::ORDER_ASCENDING,
'department.name' => QueryInterface::ORDER_ASCENDING,
'salary' => QueryInterface::ORDER_ASCENDING,
];

正如您在 department.name 中看到的那样,您还可以按关系的属性进行排序。请注意,这仅适用于 1:1 和 n:1 关系。

对于存储库中的自定义查询方法,您可以直接在查询上手动设置顺序:

$query->setOrderings([
'name' => QueryInterface::ORDER_ASCENDING,
'department.name' => QueryInterface::ORDER_ASCENDING,
'salary' => QueryInterface::ORDER_ASCENDING,
]);

关于php - 如何在 Typo3 的默认存储库功能中设置排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50386365/

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