2012-05-02 10 views
1

私は現在、私のコードで一対多の関係をしています。私はそれはそれに対応するCATEGORY_IDの製品を選択するようにproducts.category_idがcategories.category_idと通信したいcakephpモデルの関連付けで外部キーを操作できる方法はありますか?

TABLE: categories 
FIELDS: category_id (primary) 
     categoryName 


TABLE: products 
FIELDS: id (primary) 
     productName 
     category_id 

:以下は私のデシベルです。しかし、実際に私のコードで起こることは、それは私の主キーである私のプロダクトのidを経由してCATEGORY_ID選択され、それはこのように書きます:

SELECT `Category`.`category_id`, `Category`.`categoryName`, `Category`.`description`, `Category`.`picture` FROM `categories` AS `Category` WHERE `Category`.`category_id` IN (3, 5, 6) 

値:3,5,6-三の主キーです私の製品テーブルの製品。 1,2,3は私のカテゴリテーブル

すべてのヘルプでCATEGORY_IDに対応する私の製品テーブルのCATEGORY_IDある非常に高く評価されるだろう。しかし、それは価値がこのよう

SELECT `Category`.`category_id`, `Category`.`categoryName`, `Category`.`description`, `Category`.`picture` FROM `categories` AS `Category` WHERE `Category`.`category_id` IN (1, 2, 3) 

にする必要があります。

//Category model 
public $hasMany = array('Product'); 

//Product model 
public $belongsTo = array('Category'); 

そして、ちょうどCategory.idCategory.category_i Dを変更します。

+0

あなたのアソシエーションとあなたが使っているコードを投稿してください。 (そして 'category_id'を 'id'に変更) – Dave

+0

が解決されました。私の間違いは、初心者として、cakephpの命名規則に従わなかったので、私は2つのモデルのモデル連想を交換しました。製品モデルの : 変数$ belongsToの= 'カテゴリー';カテゴリーモデルの : VAR $ hasManyの= '製品'; などがすべて機能しました。ありがとうございました:D – Charmie

答えて

0

は、モデルのアソシエーションが正しく設定されていることを確認してください。

関連する問題