2013-04-27 27 views
1

在phpmyadmin中,我在mysql數據庫中創建了2個表。Yii crud腳手架 - 外鍵列名而不是id

例如 - 產品表

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_category.name作爲標籤和下拉列表,而不是tbl_product.category_id中包含的id。

這可能嗎?

+1

http://www.yiiframework.com/doc/guide/1.1/en/database.arr – Tim 2013-04-27 18:36:17

回答

1

在模型(關係部分):

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

考慮,例如:

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

有一點要注意 - 如果你要表現出很多的產品與相關類別名字一次 - 你應該使用$criteria->with = 'tbl_category'; $criteria->together = true'。如果你這樣做--yii會建立查詢來一次獲得所有需要的數據。否則,yii會詢問數據庫中顯示的每個帖子前面的ctaegory名稱。

糾正我,如果我錯了,但我記得它的工作方式。