1.我对如何在我的数据库查询中添加排序顺序(从最高到最低)感到困惑。我尝试了一些代码,但它产生了一个错误。这里的任何帮助都是非常感谢。
dir()
2.在这里告诉我们。如何添加orderby(从最高到最低),因为它是两个不同的where子句。public function ListOrgaScholar($ship_id){
$ship = Scholarship::find($ship_id);
$ship_age_from = $ship->ship_age_from;
$ship_age_to = $ship->ship_age_to;
$scholars = (new Scholar)->newQuery()->select('*');
$scholars->whereBetween(DB::raw('TIMESTAMPDIFF(YEAR,scholars.scholar_birthday,CURDATE())'),array($ship_age_from,$ship_age_to));
$scholars = $scholars->get();
}
和$ship_gpa_from
是等级的输入。
$ship_gpa_to
答案 0 :(得分:1)
您是否尝试将结果作为集合返回,然后对它们应用集合函数?代码看起来有点像这样:
$scholarship = Scholarship::find($id);
$scholars = Scholar::all();
$selectedScholars = $scholars->filter(function ($item, $key) {
$scholarAge = Carbon::now() - $item->scholar_birthday //this depends on the value of scholar_birthday;
return ($scholarAge >= $scholarship->ship_age_from && $scholarAge <= $scholarship->ship_age_from);
})->sortBy("scholar_birthday");