3

(下手な英語をご容赦ください。) 私は 3 つのテーブル、たとえばBlogUser、および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'));
?>

上記のコードでは、複数選択のドロップダウン リストが正常に作成され、データベースからのデータが正常に取得され、選択されるはずの項目が正常に強調表示されます。

しかし、ここで問題が発生します。保存・更新機能の実装方法がわかりません。どのオプションを選択しても、結果はデー​​タベースに保存されません。

誰でも助けてもらえますか?前もって感謝します。

4

1 に答える 1