■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

テーブルの連携(アソシエーション)がうまくいきません。

yuuta > テーブルの連携(アソシエーション)がうまくいきません。 @ 2013/10/15 16:25
2つのテーブルを連携(アソシエーション)させようとしているのですが、「$belongsTo」でテーブルの連携がうまくいきません。

下記の通り 2つのテーブルを作成し、それぞれ「sec_code」の項目をキーとして 2つのテーブルを連携させようとしています。(IDで連携をさせようとしているわけではありません。)
ですが、Model、Controllerは下記の通り記述しているのですが、posts、detailsのいずれのテーブルでも「belongsTo」で連携させた方のレコードが取得できません。
baserCMSを入れていない CakePHPのみの環境であれば、belongsTo、hasOneのいずれでもレコードは取得できておりますので、記述方法そのものが間違っているわけではないんじゃないかと思ってはいますが、baserCMSでは何か特殊な記述方法が必要なのでしょうか?

ちなみに、下記のサイトを参考にさせていただき、プラグインという形で実装しています。
http://blog.komomo.biz/log/archives/3

-----------------テーブル「bc_pg_bcforum_posts」
CREATE TABLE IF NOT EXISTS `bc_pg_bcforum_posts` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`sec_code` char(4) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-----------------

-----------------テーブル「bc_pg_bcforum_details」
CREATE TABLE IF NOT EXISTS `bc_pg_bcforum_details` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`post_id` int(8) NOT NULL,
`sec_code` char(4) DEFAULT NULL,
`list` varchar(255) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-----------------

-----------------/app/plugins/bcforum/models/bcforum_post.php
class BcforumPost extends AppModel {
var $name = 'BcforumPost';
var $plugin = 'Bcforum';
var $useDbConfig = 'plugin';

var $primaryKey = 'sec_code';

var $belongsTo = array(
"Post2" => array(
"className" => "PgBcforumDetail",
"foreignKey" => "sec_code",
"conditions" => "",
"fields" => "",
"order" => ""
),
);

var $hasOne = array(
"Post3" => array(
"className" => "PgBcforumDetail",
"foreignKey" => "sec_code",
"conditions" => "",
"fields" => "",
"order" => ""
),
);
}
?>
-----------------

-----------------/app/plugins/bcforum/models/bcforum_detail.php
class BcforumDetail extends AppModel {
var $name = 'BcforumDetail';
var $plugin = 'Bcforum';
var $useDbConfig = 'plugin';

var $primaryKey = 'sec_code';

var $belongsTo = array(
"Detail2" => array(
"className" => "PgBcforumPost",
"foreignKey" => "sec_code",
"conditions" => "",
"fields" => "",
"order" => ""
),
);

var $hasOne = array(
"Detail3" => array(
"className" => "PgBcforumPost",
"foreignKey" => "sec_code",
"conditions" => "",
"fields" => "",
"order" => ""
),
);
}
?>
-----------------

-----------------/app/plugins/bcforum/controllers/bcforum_details_controller.php
// 継承するコントローラのpluginsをインポートする
app::import('Controller', 'Plugins');

// baserCMS にパッケージされている PluginsController を継承させます
class BcforumDetailsController extends PluginsController {
var $name = "BcforumDetails";
var $uses = array('Plugin', 'Bcforum.BcforumDetail');
var $components = array('BcAuth','Cookie','BcAuthConfigure');

function index() {
$this->pageTitle = 'トピックス一覧・New';
$datas = $this->BcforumDetail->find('all');
$this->set('datas', $datas);
}
}
?>
-----------------


-------------------------------------------------------
■ BaserCMSのバージョン:2.1.1
■ サーバー名:ローカルサーバ・XAMPP
■ スマートURLの利用:ON
■ 設置フォルダ:サブディレクトリ
■ 利用しているデータベース:MySQL
■ PHPスキル(自己評価):C
-------------------------------------------------------
■ OS:Windows7
■ XAMPP:3.1.0
■ PHP:5.4.7
■ MySQL:5.5.27
-------------------------------------------------------
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
22 人のユーザが現在オンラインです。 (22 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 22