2 回答
TA贡献1820条经验 获得超10个赞
您可以传递回调并检查其类的模型,返回适当的排序字段。
return $requests->sortByDesc(function($model) {
if($model instanceof \App\Terminations){
return $model->term_date;
} elseif($model instanceof \App\LoadedReactivation) {
return $model->reactivation_date;
}
return $model->deactivation_date;
});
TA贡献1828条经验 获得超4个赞
如果您打算仅对集合(而不是数据库级别)执行此操作,您可以考虑在每个模型上放置一个访问器,该访问器将根据模型类型返回正确的日期值。
通过这种方式,您可以统一您将找到排序顺序日期的字段并简化您的代码。
例如:
终端型号
public function getSortDateAttribute()
{
return $this->term_date;
}
LoaReactivation 模型
public function getSortDateAttribute()
{
return $this->reactivation_date;
}
负载停用模型
public function getSortDateAttribute()
{
return $this->deactivation_date;
}
然后在您的函数中,在您推送所有记录之后:
return $requests->sortByDesc('sort_order');
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报