当然,我可以将 order_by 与第一个表中的列一起使用,但不能与第二个表中的列一起使用,因为结果是部分的。
如果我使用“加入”,一切都会完美,但我需要以雄辩的方式实现这一点。难道我做错了什么?
这是一个例子:
//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 join 语句中的 order_by 行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)