Open cossack910 opened 11 months ago
公式 https://readouble.com/laravel/10.x/ja/eloquent-relationships.html#many-to-many
purchase.model | item_purchase.customer_id | item_purchase.item_id | item.model |
---|---|---|---|
1 | 多 | 多 | 1 |
modelではなく中間テーブル作成用マイグレーションファイル作成
docker exec -it crmsystem php artisan make:migration create_item_purchase_table
中間テーブルへのデータ挿入
puchaseテーブルに100件データを挿入。 中間テーブルである item_purchaseテーブルに 新規で100件登録した purchase_id と item.id をattachで挿入。 https://github.com/cossack910/CRMSystem/blob/d6c8c2caf2c9b3ca8c2533f965a99df13f081ebf/crmsystem/database/seeders/DatabaseSeeder.php#L22
attachメソッド
Eloquentは、多対多リレーションの作業をとても便利にする方法も提供しています。たとえば、ユーザーが多くの役割を持つことができ、役割が多くのユーザーを持つことができると想定してみましょう。attachメソッドを使用してリレーションの中間テーブルへレコードを挿入することで、ユーザーに役割を関連付けできます
モデルにリレーションを関連付けるときに、中間テーブルへ挿入する追加データの配列を渡すこともできます。
$user->roles()->attach($roleId, ['expires' => $expires]);
1対多
公式 https://readouble.com/laravel/10.x/ja/eloquent-relationships.html#one-to-many
customer 多側は複数形
purchase