データベースを切り替えたあとに、取得したデータの$hasManyアソシエーションした部分の一部が紐づかないです。
<テーブル>
- postsテーブル
- tagsテーブル
- posts_tagsテーブル(中間テーブル)
<モデル>
- post.php
- tag.php
- posts_tag.php($name = 'PostsTag')
<db環境>
- 開発環境('develompent')
- テスト環境('testDb')
※database.phpは省略
dbを切り替えた後に、取得したデータが正しくとれません。
下記を見てください。
postモデルに中間テーブルのモデルであるPostsTagを$hasmanyしています。
このとき取得したデータである$dataの[PostsTag]には、PostsTagモデルのデータは取れますが、、、、、
サブで定義した?[PostsTag_Sub]には、PostsTagモデルのデータは取れません!!!!!!!!!!!!!
ちなみにdbを切り替えなければ、データは全て正しく取れます。
困ってます。教えてください。
//post.php class Post extends AppModel { public $hasMany = [ 'PostsTag', 'PostsTag_Sub' => [ 'className' => 'PostsTag', ], ]; public function getData() { //開発環境(development)にいる $oldDb = $this->Tag->useDbConfig; //development // テスト環境(testDb)に切り替える。 $database = 'testDb'; $this->dbChange($database); //データ取得 $data = $this->find('all'); print_r($data); } //データベース切り替え処理 public function dbChange($database) { $this->useDbConfig = $database; $this->tag->useDbConfig = $database; $this->posts_tag->useDbConfig = $database; } }
あなたの回答
tips
プレビュー