Chapter 10

Eloquentのリレーション活用 | Laravel入門

くすたん
くすたん
2020.11.04に更新

Chapter9

リレーション機能を使って、データ同士の関連性を定義してログインしたユーザーのタスクのみが閲覧できるようにします。

リレーション

リレーションとは…

https://wa3.i-3-i.info/word11596.html

Todoアプリのケースでは、 users テーブルと todos テーブルを紐付けるようにします。

$ php artisan make:migration add_todo_user_id

課題

users テーブルと todos テーブルを紐づけるためのマイグレーションスクリプトを作成してください。

ヒント
マイグレーション, リレーション, 外部キー制約

紐付けるマイグレーションを書いたら、マイグレーションの実行

$ php artisan migrate

seederの修正

seederを修正して、 user_id をデフォルトで設置するようにします。

課題

  1. seederを修正して、タスク1~10はユーザーid1、タスク11~20はユーザーid2、…タスク91~100はユーザーid10の所有タスクとなるようにseederを修正してください。
  2. seederを修正して実行すると、とある問題が発生します。問題の原因を考えて修正してください。

テーブルを削除してマイグレーションとseederを実行するコマンド

$ php artisan migrate:fresh --seed

この時点で以下のアカウントが有効になっています。

メールアドレス: hoge+1@test.com
パスワード: password

データ取得

todo一覧のデータを user_id に応じて取得するようにします。

課題

  1. todo一覧のデータを user_id に応じて取得するようにしてください。
  2. todo単体ページについて起きている問題を考えて対応してください。

この章終了時点でのコード

https://github.com/qst-exe/c2-php-todo/tree/chapter3/task3