(请原谅我糟糕的英语。)我有 3 个表,比如Blog、User和user_blog。
博客
CREATE TABLE `Blog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
用户
CREATE TABLE `User` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
用户博客
CREATE TABLE IF NOT EXISTS `user_blog` (
`user_id` int(11) NOT NULL,
`blog_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`,`blog_id`)
) ENGINE=InnoDB;
我已经在各自的 AR 模型中声明了它们的关系。
博客.php
public function relations() {
return array(
'users' => array(self::MANY_MANY, 'User', 'user_blog(blog_id, user_id)'),
);
}
用户.php
public function relations() {
return array(
'blogs' => array(self::MANY_MANY, 'Blog', 'user_blog(user_id, blog_id)'),
);
}
现在,我认为以下代码:
<?php
$data = CHtml::listData(User::model()->findAll(), "id", "name");
echo $form->dropDownList($blog,'users', $data, array('multiple'=>'multiple', 'size' => '5'));
?>
使用上面的代码,成功创建了一个多选的下拉列表,并成功从数据库中检索到数据,并成功突出显示了应该选择的项目。
但问题来了。我不知道如何实现保存/更新功能。无论我选择了什么选项,结果都不会保存回数据库。
有人可以帮忙吗?先感谢您。