mac
laravel6
#したいこと
userテーブルのデータを並び替えてreturnしたい
下記するresultが多い/少ない順に並べ,全てのデータを使いたい
なので,resultだけを取り出したいわけではない.
#データベースの構造
userとall_dataの2つのテーブルがあり,userはいくつかのall_dataを持っています(hasmany)
userテーブル
id | name |
---|---|
1 | tanaka |
2 | abe |
3 | noda |
all_dataテーブル
|id|user_id|result|...他にも色々なデータ|
|:--|:--:|
|1|1|1|
|2|1|0|
|3|1|1|
|4|2|0|
|5|3|1|
primaryKeyはuser_id
resultは0か1のみ
resultの合計値によって順番を変えたいです
自身で試行錯誤をして,以下のように書いてみましたが,「whereやcount」使い方が違うようです(的外れなことをしているのは重々承知です...ごめんなさい)
コントローラに書き進めています↓
class UsersController extends Controller { public function asc() { $users_false_asc = User::with('all_data')->orderBy('all_data'->where('result', '1')->count(), 'asc')->get(); return view('users', ['users' => $user_false_asc]); } }
いい方法はありますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/21 10:24