1

phpmyadmin で、mysql データベース内に 2 つのテーブルを作成しました。

例 - 商品表

tbl_product
id - int, pk, autoincrement
name - varchar 20
price - decimal
category_id - int, fk, notnull

tbl_category
id - int, pk, autoincrement
name - varchar(20)

上記から、商品に category_id の値が含まれていることがわかります。

gii で tbl_product のモデルを自動生成しました。

tbl_product モデルの crud クラスを作成しようとしていますが、その場合、tbl_product.category_id に含まれる ID ではなく、tbl_category.name をラベルとドロップダウンとして表示したいと考えています。

これは可能ですか?

4

1 に答える 1

1

モデル内 (関係部分):

'category' => array(self::BELONGS_TO, 'tbl_category', 'category_id')

たとえば、次のように表示されます。

...isset($model->category) ? $model->category->name...

1 つの注意点 - 関連するカテゴリ名を持つ多数の製品を一度に表示する場合は、 を使用する必要があります$criteria->with = 'tbl_category'; $criteria->together = true'。これを行うと、yii はクエリを作成して、必要なすべてのデータを一度に取得します。そうしないと、yii は表示する投稿ごとにデータベースに ctaegory 名を尋ねます。

間違っている場合は訂正してください。ただし、そのように機能することを思い出します。

于 2013-04-28T17:51:09.447 に答える