cakephp呼び出し異なるデータベース内のデータテーブル
フレームワークcakephpでプロジェクトを作成する際に、データベースを新規作成し、このプロジェクトを新規ライブラリのテーブルにリンクし、loadModel('testQuestion')を使用する必要があります.そして$this->testQuestion->useDbConfig='testBase';このような論理は問題ないはずですが、database構成ではデフォルトのライブラリはwssで、このライブラリにはこのテーブルはありません.
では、ページが表示されると404が間違っています.最後に解決策を見つけました.以下のようにします.
modelsフォルダの下にwss_を作成することですtestライブラリのテーブル名のmodelファイルに、どのライブラリを使用すればよいかを明記します.
ちなみに、デフォルトのライブラリにこのテーブルがあればモデルファイルの説明をしなくてもいいです.プライマリ・スレーブ・ライブラリでloadModel('testQuestion’)をこのように使用できます.そして$this->testQuestion->useDbConfig='testBase';
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '192.168.9.10',
'login' => 'root',
'password' => '123456',
'database' => 'wss',
'encoding' => 'utf8',
'prefix' => '',
);
var $testBase = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '192.168.9.10',
'login' => 'root',
'password' => '123456',
'database' => 'wss_test',
'encoding' => 'utf8',
'prefix' => '',
);
では、ページが表示されると404が間違っています.最後に解決策を見つけました.以下のようにします.
/*
* testBase model
*
*/
class TestQuestion extends AppModel{
public $name = 'PreschoolTestQuestion';
var $useDbConfig = 'testBase';
var $useTable = false;
}
modelsフォルダの下にwss_を作成することですtestライブラリのテーブル名のmodelファイルに、どのライブラリを使用すればよいかを明記します.
ちなみに、デフォルトのライブラリにこのテーブルがあればモデルファイルの説明をしなくてもいいです.プライマリ・スレーブ・ライブラリでloadModel('testQuestion’)をこのように使用できます.そして$this->testQuestion->useDbConfig='testBase';