1

私は現在、コードで1対多の関係を築いています。以下は私のデータベースです:

TABLE: categories
FIELDS: category_id (primary)
        categoryName


TABLE: products
FIELDS: id (primary)
        productName
        category_id

products.category_idがcategories.category_idと通信して、対応する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は、私の製品テーブルの3つの製品の主キーです。しかし、それはこのようでなければなりません

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

ここで、値:1、2、3は、私の製品テーブルのcategory_idであり、私のカテゴリテーブルのcategory_idに対応しています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

モデルの関連付けが正しく設定されていることを確認してください。

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

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

そして、Category.category_idをちょうどに変更しCategory.idます。

于 2012-05-02T02:24:22.293 に答える