中間テーブルで表される 2 つのテーブル間に多対多の関係があります。アプリケーションでデータベースをモデル化するために ZF1 テーブル リレーションシップ方法論を使用していますが、これは正常に機能します。私が苦労していることの 1 つは、多対多のルックアップを実行するときに中間テーブルからデータを取得することです。例:
製品テーブル
商品ID、商品名
顧客テーブル
customer_id、customer_name
販売テーブル
customer_id、product_id、date_of_sale
この場合、sales テーブルが中間テーブルであり、多対多の関係が顧客と製品の間にあります。製品と顧客の sales テーブル モデルに referenceMap を追加し、製品テーブル モデルと customer テーブル モデルに依存テーブル "sales" を追加します。
次に、次のコードを使用して、特定の顧客のすべての製品を正常に取得できます (またはその逆)。
$productTable = new productsTable();
$product = $productTable->find(1)->current();
$customers = $product->findManyToManyRowset('customerTable','salesTable');
ただし、返される行セットには「date_of_sale」の値は含まれません。別のデータベース ルックアップを行わずに、中間テーブルの値を含める方法はありますか。zf ドキュメントには何も表示されません。
どんな助けでもいいです。最終的に zend_table を datamapper の実装に置き換えたいと考えています。これは、実行する db クエリの数に関して非常に非効率的であり、複数の単純な選択ではなく、わずかに複雑な SQL 結合クエリを使用して大幅に削減できる可能性がありますが、今のところ行き詰まっていますこれとともに。
ありがとう。