gpt4 book ai didi

fuelphp - 如何使用 FuelPHP 的 ORM 对相关子模型进行排序

转载 作者:行者123 更新时间:2023-12-02 07:40:34 27 4
gpt4 key购买 nike

我有一个 3 级模型结构:

  • Model_Race has_many Model_Class

  • Model_Class has_many Model_Driver

现在,假设 Model_Class 和 Model_Driver 有一个 order_index 属性来保持它们的顺序。

是否有一种干净的方法来获取比赛并正确排序类别和车手?

最佳答案

documentation清楚地表明这一点,我不知何故错过了:

查找数组语法

$race = Model_Race::find($id, array(
'related' => array(
'class' => array(
'order_by' => array('order_index' => 'asc'),
'related' => array(
'driver' => array(
'order_by' => array('order_index' => 'asc'),
)
)
)
)
)
);

使用查询方法链语法

(我比上面的数组语法更喜欢的方法)

$race = Model_Race::query()
->related('race.class')
->related('race.class.driver)
->order_by('race.class.order_index', 'asc')
->order_by('race.class.driver.order_index', 'asc')
->get();

将其构建到模型中

您可以在模型中设置关系,以便默认情况下发生这种情况:

比赛模型:

protected static $_has_many = [
'classes' => [
'conditions' => [
'order_by' => [
'order_index' => 'asc'
]
]
]
];

类模型:

protected static $_has_many = [
'drivers' => [
'conditions' => [
'order_by' => [
'order_index' => 'asc'
]
]
]
];

关于fuelphp - 如何使用 FuelPHP 的 ORM 对相关子模型进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642430/

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