gpt4 book ai didi

php - 使用 Eloquent 一对多时如何在第二张表上显示 'order_by'

转载 作者:搜寻专家 更新时间:2023-10-31 21:37:44 24 4
gpt4 key购买 nike

当然,我可以对第一个表中的列使用 order_by,但不能对第二个表中的列使用,因为结果是部分的。

如果我使用“加入”,一切都会完美无缺,但我需要 Eloquent 地实现这一点。我做错了什么吗?

这是一个例子:

//with join
$data = DB::table('odt')
->join('hdt', 'odt.id', '=', 'hdt.odt_id')
->order_by('hdt.servicio')
->get(array('odt.odt as odt','hdt.servicio as servicio'));
foreach($data as $v){
echo $v->odt.' - '.$v->servicio.'<br>';
}
echo '<br><br>';
//with eloquent
$data = Odt::get();
foreach($data as $odt){
foreach($odt->hdt()->order_by('servicio')->get() as $hdt){
echo $odt->odt.' - '.$hdt->servicio.'<br>';
}
}

最佳答案

在您的模型中,您需要明确告诉关系按该字段排序。

因此在您的 odt 模型中添加:

public function hdt() {
return $this->has_many('hdt')->order_by('servicio', 'ASC');
}

这将允许在使用此关系时对第二个表进行排序,并且您不需要在 Fluent 连接语句中使用 order_by 行。

关于php - 使用 Eloquent 一对多时如何在第二张表上显示 'order_by',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15252444/

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