Gii CRUD生成器和相关表

时间:2013-08-28 14:34:06

标签: yii relational-database gii

我正在使用Yii框架,我遇到了CRUD生成器的问题。 我有两个名为Users和news的表,具有以下结构:

CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `keyword` varchar(1000) COLLATE utf8_persian_ci DEFAULT NULL,
  `user_id` tinyint(3) unsigned NOT NULL,
  `title` varchar(100) COLLATE utf8_persian_ci DEFAULT NULL,
  `body` varchar(1000) COLLATE utf8_persian_ci DEFAULT NULL,
  `publishedat` date DEFAULT NULL,
  `state` tinyint(1) unsigned DEFAULT NULL,
  `archive` tinyint(1) unsigned DEFAULT NULL,
  `last_modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `news_FKIndex1` (`keyword`(255)),
  KEY `news_FKIndex2` (`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=3 ;




CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(128) NOT NULL,
  `create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `lastvisit_at` timestamp NULL DEFAULT NULL,
  `is_disabled` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  KEY `status` (`is_disabled`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

当我使用Gii为我的新闻表生成CRUD时,我看不到users表的字段。而不是user_id我希望在CRUD生成器创建的表中看到用户名。如何在代码中进行更改以获得上述结果?

1 个答案:

答案 0 :(得分:0)

首先,user_id必须是外键字段,而不仅仅是字段。

其次,gii默认情况下不会生成您需要的字段。对于此类功能,Giix等扩展可能会有所帮助。但是,由于存在关系,您始终可以使用relationName.username在网格视图或列表视图中显示username