1

教義を使用してデータのサブセットを選択するのに問題があります。

私は3つのテーブルを持っています

所在地 連絡先 Contact_location

contact テーブルと location テーブルには名前と ID が保持され、もう一方のテーブルには ID のみが保持されます。例えば:

Location
 loc_id: 1
 name: detroit
Contact
 contact_id: 1
 name: Mike
Contact_location
 loc_id: 1
 contact_id: 1

教義では、ref_class として contact_location を使用して、location テーブルと contact テーブルの間に多対多の関係があります。

私がやりたいことは、場所のページで、たとえば loc_id = 1 のすべての連絡先を見つけたいということです。

私は試した:

 $this->installedbases = Doctrine::getTable('contact')->findByloc_id(1);

教義が関係を見てそれを取得することを望んでいますが、そうではありません。

関連する関連テーブルでドクトリン検索を行うにはどうすればよいですか? Findbyを使用して実行できると読みましたが、ドキュメントが不明確です。

4

2 に答える 2

7

に変更findByloc_id()findByLocId()ます。その方法は魔法にかかって__call()いる。

于 2010-05-25T12:40:26.727 に答える
2

テーブル クラスにメソッドを追加します。

class ContactTable extends Doctrine_Table
{
  public function findByLocationId($id)
  {
    return self::createQuery("c")
      ->innerJoin("c.Location l")
      ->where("l.loc_id = ?", $id)
      ->execute();
  }
}

次に、次のように呼び出します。

$loc_id = 1;
$result = Doctrine::getTable("Contact")->findByLocationId($loc_id);

Doctrine は refclass を使用して内部結合を実行する必要があります。

于 2010-05-25T12:34:46.370 に答える