Cakephp は別のデータベースのデータテーブルを呼び出します

黄舟
リリース: 2023-03-03 16:16:02
オリジナル
1250 人が閲覧しました

cakephp フレームワークを使用してプロジェクトを作成するときに、この問題が発生しました。新しいデータベースを作成し、このプロジェクトを新しく作成したライブラリ内のテーブルにリンクし、loadModel('testQuestion') を使用してから $this-; を使用する必要があります。 >testQuestion->useDbConfig = 'testBase'; このロジックには問題はないはずですが、データベース構成のデフォルトのライブラリは wss であり、このライブラリにはそのようなテーブルがありません

Php コード

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' => '',   
    );  
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 が報告されます。最後に、次のような解決策を見つけました:

Php コード

/*  
 * testBase库中model  
 *   
 */  
class TestQuestion extends AppModel{   
    public $name = 'PreschoolTestQuestion';   
    var $useDbConfig = 'testBase';   
    var $useTable = false;   
}  
/*
 * testBase库中model
 * 
 */
class TestQuestion extends AppModel{
	public $name = 'PreschoolTestQuestion';
	var $useDbConfig = 'testBase';
	var $useTable = false;
}
ログイン後にコピー

models フォルダーの下の wss_test ライブラリにテーブル名にちなんだ名前のモデル ファイルを作成し、使用するライブラリを指定するだけです。

ちなみに: デフォルトのライブラリにこのテーブルがあれば、モデルファイルの記述を作成する必要はありません。たとえば、マスター/スレーブ ライブラリでは、loadModel('testQuestion'); を使用してから $this->testQuestion->useDbConfig = 'testBase';

上記は、cakephp がデータ テーブルを呼び出す内容です。さまざまなデータベース、より関連性の高い PHP 中国語 Web サイト (www.php.cn) のコンテンツにご注意ください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート