質問編集履歴

2

修正

2022/06/28 08:42

投稿

hatena
hatena

スコア4

test CHANGED
File without changes
test CHANGED
@@ -40,5 +40,54 @@
40
40
  しかし、順位をつけようとしましたが、やり方が分かりませんでした。
41
41
  連番をつけるという方法をしましたが、何か違うような。。。
42
42
  どのようにして、一つ一つに順位を付けることができるのでしょうか。
43
+ 各テーブル↓↓
44
+
45
+ ```ここに言語を入力
46
+ usersテーブル
47
+
48
+ public function up()
49
+ {
50
+ Schema::create('users', function (Blueprint $table) {
51
+ $table->bigIncrements('id');
52
+ $table->string('name');
53
+ $table->string('email')->unique();
54
+ $table->timestamp('email_verified_at')->nullable();
55
+ $table->string('password');
56
+ $table->rememberToken();
57
+ $table->timestamps();
58
+ });
59
+ }
60
+
61
+ likesテーブル
62
+
63
+ public function up()
64
+ {
65
+ Schema::create('likes', function (Blueprint $table) {
66
+ $table->bigIncrements('id');
67
+ $table->unsignedBigInteger('user_id');
68
+ $table->unsignedBigInteger('fighter_id');
69
+ $table->timestamps();
70
+
71
+ $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
72
+ $table->foreign('fighter_id')->references('id')->on('fighters')->onDelete('cascade');
73
+ });
74
+ }
75
+
76
+ fightersテーブル
77
+ public function up()
78
+ {
79
+ Schema::create('fighters', function (Blueprint $table) {
80
+ $table->bigIncrements('id');
81
+ $table->string('fighter_name',100);
82
+ $table->string('image',100);
83
+ // 写真の引用元
84
+ $table->string('image_quote',100);
85
+ //SNSのアカウントリンク
86
+ $table->string('account',100);
87
+ $table->timestamps();
88
+ });
89
+ }
90
+
91
+ ```
43
92
 
44
93
 

1

修正

2022/06/28 08:08

投稿

hatena
hatena

スコア4

test CHANGED
@@ -1 +1 @@
1
- Laravelでランキングサイトで順位の付け方。
1
+ Laravelで人気ランキングサイトで順位の付け方。
test CHANGED
@@ -1,8 +1,44 @@
1
- ランキングサイトを作成しています。
1
+ 人気ランキングサイトを作成しています。(バージョンLaravel 6.x)
2
- [参考サイト](https://qiita.com/yokoiakinori/items/877e22714105d4506c39)に
2
+ [参考サイト](https://qiita.com/yokoiakinori/items/877e22714105d4506c39)を参考に、
3
+ ```ここに言語を入力
4
+ FighterController
5
+
6
+ <?php
7
+
8
+ namespace App\Http\Controllers;
9
+
10
+ use Illuminate\Http\Request;
11
+
12
+ //Fighterモデルをインポート
13
+ use App\Fighter;
14
+ //Likeモデルをインポート
15
+ use App\Like;
16
+
17
+ (省略)
18
+
19
+ // DBをインポート
20
+ use DB;
21
+
22
+ class FighterController extends Controller
23
+ {
24
+ //トップページ
25
+ public function index()
26
+ {
27
+ // $fighters = Fighter::withCount('likes')
28
+ // // いいねの多い順に並び替え
3
- $products = Product::withCount('likes')->orderBy('likes_count', 'desc')->get();
29
+ // ->orderBy('likes_count', 'desc')
30
+ // ->get();
31
+
32
+ return view('fighters.index',[
33
+ 'title' => '格闘家人気ランキング',
34
+ 'fighters' => $fighters,
35
+ ]);
36
+ }
37
+
38
+ ```
4
39
  で、いいねの数が多い順に表示させることができました。
5
40
  しかし、順位をつけようとしましたが、やり方が分かりませんでした。
6
41
  連番をつけるという方法をしましたが、何か違うような。。。
7
42
  どのようにして、一つ一つに順位を付けることができるのでしょうか。
8
43
 
44
+