方法
- DBからクエリビルダで->toArrayを用いて配列で取得
- usortでソートし直す
// Post(オブジェクト)の配列を、Post(配列)の配列に変換する
$posts = $user->posts->toArray();
// 第1引数にPostの配列を、第2引数に$a、$b(を
// 引数に持つコールバックを渡す
usort($posts, function ($a, $b) {
if ($a['updated_at'] != $b['updated_at']) {
// 両者のupdated_atが異なる、つまり比較が可能
return ($a['updated_at'] < $b['updated_at']) ? +1 : -1;
}
if ($a['created_at'] != $b['created_at']) {
return ($a['created_at'] < $b['created_at']) ? +1 : -1;
}
// 両者のupdated_at、created_atが同じ場合、idで比較
return ($a['id'] < $b['id']) ? +1 : -1;
});