-1

必要なもの:

Facebookのようなフレンドシップシステム。

  1. User (A)との友情のリクエストを送信しますUser (B)
  2. User (B)リクエストを確認します
  3. User (A)そしてUser (B)今は友達です

私の問題:

私はこれをどのように解決するか混乱しています。私はインターネットでたくさん読んだのですが、本当に役に立ちませんでした...

私の質問:

  • CakePHP ではどのようなリンクですか? hasAndBelongsToMany ですか?それともハズメニー?または ...?
  • データベースで正しく認識するにはどうすればよいですか?
  • モデルにリンクするにはどうすればよいですか?

私がすでにしたこと:

テーブル:users

名前: idusernamepassword、 ...

users_users テーブル: iduser_idfriend_idapproved

モデル:

'User' => array(
                'className' => 'User',
                'joinTable' => 'users_users',
                'foreignKey' => 'user_id',
                'associationForeignKey' => 'friend_id',
                'unique' => 'keepExisting',
                'conditions' => '',
                'fields' => '',
                'order' => '',
                'limit' => '',
                'offset' => '',
                'finderQuery' => '',
                'deleteQuery' => '',
                'insertQuery' => ''
                );
4

1 に答える 1

0

「@tereškoありがとうございます!しかし、エラーが発生します:エラー:内部エラーが発生しました」

最初に、「内部エラー」についてのコメントに答えます。

debug2 に設定してみるconfig.phpと、より理解しやすいエラーが発生し始めることがわかります。

あなたの最初の質問について: 1.すべてのユーザーに友達がいるので、あなたの関係は基本的にhasMANyのように見えます。HABTM もここで機能しますが、はるかに複雑です。この決定 (どのリレーションを使用するか) は、システムの他の部分にも依存します。つまり、このデータを他の部分で何にどのように使用するかについてです。2.ここを読む 3. あちらをもう一度読む

jon モデルによるHABTMhasManyについてもう少し説明します (HABTM と同じ考え方を使用しながら、追加のデータを結合テーブルに格納する必要がある場合)。

HABTMが複雑になったらどうする?

デフォルトでは、HasAndBelongsToMany 関係を保存するとき、Cake は新しい行を保存する前に結合テーブルのすべての行を削除します。たとえば、10 人の子供が関連付けられているクラブがあるとします。次に、Club を 2 つの子で更新します。クラブには 12 ではなく 2 つの子しかありません。結合にさらにフィールドを追加したい場合 (作成時またはメタ情報)、HABTM 結合テーブルを使用すると可能ですが、次のことを理解することが重要です。簡単なオプション。2 つのモデル間の HasAndBelongsToMany は、実際には、hasMany アソシエーションと属しているアソシエーションの両方を介して関連付けられた 3 つのモデルの省略形です。

現在の DB 構造はひどいものです。という名前のテーブルが必要な理由がわかりませんtableでした。または、これを間違えたのかもしれません。HABTM を使用する場合は、結合モデルを作成する必要はまったくありません。cake が自動的に作成してデータを入力します。

HATBM の詳細情報:

  1. ここ
  2. そこには
  3. ここ
  4. そこには
于 2013-04-16T08:02:28.963 に答える