Yii crud脚手架 - 外键列名而不是id

时间:2013-04-27 16:58:07

标签: yii scaffolding

在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_category.name显示为标签和下拉列表,而不是tbl_product.category_id中包含的id。

这可能吗?

1 个答案:

答案 0 :(得分: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名称。

如果我错了,请纠正我,但我记得它是这样的。