(下手な英語をご容赦ください。) 私は 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'));
?>
上記のコードでは、複数選択のドロップダウン リストが正常に作成され、データベースからのデータが正常に取得され、選択されるはずの項目が正常に強調表示されます。
しかし、ここで問題が発生します。保存・更新機能の実装方法がわかりません。どのオプションを選択しても、結果はデータベースに保存されません。
誰でも助けてもらえますか?前もって感謝します。