6

私は Laravel と Eloquent を初めて使用します (ORM の一般的な経験はほとんどありません)。

3 つのデータベース テーブルがあるとします。

  1. ウィジェット
  2. 行動
  3. ユーザー

以下の列を持つ 1 つのジャンクション テーブルをモデル化しました。

  1. widget_id
  2. action_id
  3. user_id
  4. タイムスタンプ

userジャンクションのポイントは、対話のログを保持することです。が に対して を実行するたびにタイムスタンプを取得しactionますwidget。Eloquent を使用して単純な多対多の関係をモデル化する方法はわかりましたが、うまく機能していますが、より複雑な 3 方向の関係をモデル化する方法がわかりません。

さらに言えば、単に多対多の関係を持っていたとしても (たとえばwidgetactionというテーブルがあるとします)、余分なデータを追跡する目的で、Eloquent でテーブルaction_widgetの明示的なモデルを追加するにはどうすればよいですか?action_widget各関係について (例: タイムスタンプ、コメント フィールドなど)。それとも、私はこれについて完全に間違った方法で行っているのでしょうか?

ORM は初めてなので、自分にできることは限られています。この気持ちは消えますか?:p

4

2 に答える 2

13

Category<->Article のような 2 方向の関係がある場合、pivot は正常に機能します。しかし、3 方向の関係がある場合は、WidgetUserAction というモデルを使用する方がよいと思います。

編集:これらの場合、新しい「hasManyThrough」は正常に機能します。

于 2013-06-01T00:07:58.643 に答える