私はCakePHPを初めて使用するので、気楽にやってください。
この問題は解決できないようです。私は「連絡先」テーブルを持っており、このテーブルがそれ自体と多対多の関係を持つことを望んでいます。目的は、連絡先が同じ会社の他の連絡先に関連していることを示すことです。したがって、連絡先のプロファイルをクリックすると、その特定の人に関連する他の連絡先を表示できます。
この問題にどのように取り組むべきか私にはわかりません。結合テーブルを考えていますが、不可能と思われますか?または私は間違っているかもしれません。誰かがこれを行う方法を知っている場合は、これを行う方法を理解できるように、できるだけ詳細を残してください(前述のようにCakePHPは初めてです)。
ありがとう!!
編集:User996302で指定された方法を試しましたが、まだ機能していません。
これは、関係の連絡先モデルの一部です。
public $hasAndBelongsToMany = array( 'Relation' => array( 'className' => 'Contact', 'joinTable' => 'contacts_contacts', 'foreignKey' => 'contact_id', 'associationForeignKey' => 'related_id', 'unique' => true, 'conditions' => '', 'fields' => '', 'order' => '', 'limit' => '', 'offset' => '', 'finderQuery' => '', 'deleteQuery' => '', 'insertQuery' => '' ) );
コントローラでsaveAll関数を使用しています。コントローラの追加セクションで、最後にこれがあります:
$relations = $this->Contact->Relation->find('list'); $this->set(compact('relations'));
ビューの追加ページには、選択ボックスを表示するための次のコード行があります。
echo $this->Form->input('Relation', array('type'=>'select', 'multiple' => true));
連絡先とcontacts_contactsテーブルがあります。contact_contactsテーブルには、id、contact_id、related_idの3つの属性があります。
これらすべてを実行しましたが、フォームの選択リストに、選択できる連絡先が表示されません。問題がどこにあるのかわからない。どんな助けでも素晴らしいでしょう!