おはようございます、私はEloquentのモデル関係に少し問題があります。中間の表を使って記事と画像をリンクする必要があります。中間テーブルでは、記事と画像の両方のIDを追加したいのですが、記事に属するすべての画像を取得したいのですが、関係を管理するにはどうすればよいでしょうか?事前に感謝ラベールの雄弁での一対多の関係
答えて
:その後、
public function images()
{
return $this->hasMany('App\Image');
}
そして記事のすべての画像をロードするためにeager loadingを使用し
更新:テーブル構造は次のようになります。
- articles
- id
- title
- content
- ...
- images
- id
- owner_id
- owner_type (Here there can be - Article, Auction, User, etc)
- name
- mime_type
- ...
ポリモーフィック関係モデルは、単一の関連で複数の 他のモデルに属することができます。たとえば、 のユーザーがあなたのアプリケーションで投稿と動画の両方に「コメント」することができるとします。 多相関係を使用すると、両方のシナリオで の単一のコメントテーブルを使用できます。
あなたのモデルは次のようになります。
class Article extends Model
{
public function images()
{
return $this->morphMany(Image::class, 'owner');
}
}
class Image extends Model
{
public function owner()
{
return $this->morphTo();
}
}
記事に複数の画像を保存するには、あなたは次のように行うことができます。
$article->images()->create([... inputs_arr ...]);
し、それらを取得するために、次のようにこれを行うことができます:
$articleImages = Article::find($id)->images;
それで、テーブルのデータをどのように保存しますか?どこでDB上の関係を作るのですか?以前は普通のPHPで作業していたので、モデルを作成する前にDBを作成しました。ありがとう:D –
この場合は2つのテーブルがあります。あなたのテーブル構造は上記の私の更新された答えに示されるようになります。 –
オークション、ユーザーなど、他のモデルに関連する画像テーブルを使用すると問題はありませんか? –
one-to-manyリレーションシップのため、ピボットテーブルを使用する必要はありません。
だけhasMany()
関係を使用:あなたはこのようなあなたの問題を解決するためにmorphMany()
関係(Polymorphic Relationship)を使用することができます
$article = Article::with('images')->where('id', $articleId)->first();
- 1. 雄弁多対多の関係
- 2. 雄弁クエリ - 1対多の関係
- 3. Laravel三方多対多の雄弁関係
- 4. データベースの関係をラベールの雄弁に変更する
- 5. Laravel 5.4雄弁な1対多の関係データのフェッチ
- 6. 1対1雄弁関係の機能
- 7. 雄弁な多対多の関係で複数のモデルから選択する
- 8. Laravel雄弁関係
- 9. laravel雄弁関係
- 10. Laravel雄弁との関係
- 11. 雄弁モデルの関係は
- 12. の関係 - Laravel雄弁
- 13. Laravel 5. * - 多くの関係に多くの雄弁
- 14. イエス・キング・ラベール・モンゴブ多対多関係? Jessenger laravelのMongoDBのパッケージで
- 15. ラヴェル - 雄弁な関係
- 16. Laravel雄弁関係keyBy()
- 17. laravel 5 - 雄弁関係(パーミッションテーブル)
- 18. は雄弁なモデル関係
- 19. Laravel雄弁関係AVGは
- 20. 関係テーブルからの雄弁なデータ
- 21. 雄弁なマルチテーブルのクエリと関係
- 22. Laravel雄弁和関係のコラム
- 23. 雄弁関係の明確化
- 24. Laravelと雄弁の関係5.4
- 25. Laravel 4人の雄弁関係クエリ
- 26. 名前関係の雄弁な検索
- 27. 多対多の関係を最も "雄弁な"方法でどのように構造化しますか?
- 28. 一対多の関係
- 29. Laravel 4テーブルと雄弁な関係
- 30. 平坦化Laravel雄弁コレクション関係
https://laravel.com/docs/5.3/eloquent-relationships#one-to-many Laravelは文書化されていますが、ドキュメントを読む場合はこれを尋ねる必要はありません。 – Devon