teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コード例を改善

2020/04/13 11:44

投稿

Lulucom
Lulucom

スコア1904

answer CHANGED
@@ -29,19 +29,24 @@
29
29
  }
30
30
  ```
31
31
 
32
- 例. ユーザー詳細ビューで所属する部門の一覧表示する
32
+ 例. ユーザー詳細ビューで所属する部門の一覧表示する
33
33
 
34
34
  アクション(UserController@show)
35
35
 
36
36
  ```php
37
+ public function show($id) {
37
- // $user は対象ユーザーのインスタンスが入っいるものとする
38
+ // idをもとにユーザーを検索し取得する
39
+ $user = App\User::find($id);
38
40
 
41
+ // ユーザー詳細ビューでそれを表示する
39
- return view('users.show', ['user' => $user]);
42
+ return view('users.show', ['user' => $user]);
43
+ }
40
44
  ```
41
45
 
42
46
  ビュー(users/show.blade.php)
43
47
 
44
48
  ```php
49
+ ...
45
50
  <table class="table">
46
51
  ...
47
52
  <tbody>
@@ -52,5 +57,6 @@
52
57
  </tr>
53
58
  @endforeach
54
59
  </tbody>
60
+ </table>
55
61
  ...
56
62
  ```

2

コード例をアクションとビューに分けました

2020/04/13 11:44

投稿

Lulucom
Lulucom

スコア1904

answer CHANGED
@@ -1,4 +1,4 @@
1
- Laravelのリレーションで[多対多](https://readouble.com/laravel/5.8/ja/eloquent-relationships.html#many-to-many)を使う場合は、以下のようにするのが一般的だと思います。
1
+ Laravelで[多対多](https://readouble.com/laravel/5.8/ja/eloquent-relationships.html#many-to-many)のリレーションう場合は、以下のようにするのが一般的だと思います。
2
2
 
3
3
  テーブル構造
4
4
 
@@ -20,30 +20,37 @@
20
20
  ...
21
21
  ```
22
22
 
23
- `Department`モデルに追加するリレーションメソッド
23
+ `User`モデルに追加するリレーションメソッド
24
24
 
25
25
  ```php
26
- public function users()
26
+ public function departments()
27
27
  {
28
- return $this->belongsToMany(User::class);
28
+ return $this->belongsToMany(Department::class);
29
29
  }
30
30
  ```
31
31
 
32
- `User`モデルに追加するリレーションメソッド
32
+ 例. ユーザー詳細ビューで所属する部門の一覧を表示する
33
33
 
34
+ アクション(UserController@show)
35
+
34
36
  ```php
35
- public function departments()
37
+ // $user には対象ユーザーのインスタンスが入っているものとする
36
- {
38
+
37
- return $this->belongsToMany(Department::class);
39
+ return view('users.show', ['user' => $user]);
38
- }
39
40
  ```
40
41
 
41
- 例. ユザーの所属する部門の一覧
42
+ ビュ(users/show.blade.php)
42
43
 
43
44
  ```php
44
- $user = App\User::find(1);
45
+ <table class="table">
45
-
46
+ ...
47
+ <tbody>
46
- foreach ($user->departments as $department) {
48
+ @foreach ($user->departments as $department)
49
+ <tr>
47
- $name = $department->name; // 部門名の取得
50
+ <td>{{ $department->name }}</td>
48
- }
51
+ ...
52
+ </tr>
53
+ @endforeach
54
+ </tbody>
55
+ ...
49
56
  ```

1

Laravelのドキュメントへのリンクを追記

2020/04/13 04:37

投稿

Lulucom
Lulucom

スコア1904

answer CHANGED
@@ -1,4 +1,4 @@
1
- Laravelのリレーションを使う場合は、以下のようにするのが一般的だと思います。
1
+ Laravelのリレーションで[多対多](https://readouble.com/laravel/5.8/ja/eloquent-relationships.html#many-to-many)を使う場合は、以下のようにするのが一般的だと思います。
2
2
 
3
3
  テーブル構造
4
4