Heim  >  Artikel  >  Backend-Entwicklung  >  cakephp ruft Datentabellen in verschiedenen Datenbanken auf

cakephp ruft Datentabellen in verschiedenen Datenbanken auf

黄舟
黄舟Original
2016-12-20 09:25:231212Durchsuche

Ich bin auf dieses Problem gestoßen, als ich das Cakephp-Framework zum Erstellen eines Projekts verwendet habe: Ich muss eine neue Datenbank erstellen und dann das Projekt mit der Tabelle in der neu erstellten Bibliothek verknüpfen. Verwenden Sie LoadModel('testQuestion'); this->testQuestion-> ;useDbConfig = 'testBase'; Es sollte kein Problem mit dieser Logik geben, aber die Standardbibliothek in der Datenbankkonfiguration ist wss, und diese Tabelle ist in dieser Bibliothek nicht vorhanden PHP-Code

Dann wird bei der Anzeige der Seite ein 404-Fehler gemeldet. Schließlich habe ich eine Lösung wie folgt gefunden:
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' => '',
	);

PHP-Code

besteht darin, eine Modelldatei mit dem Namen der Tabelle in der wss_test-Bibliothek im Modellordner zu erstellen und dann Just anzugeben Verwenden Sie die gewünschte Bibliothek.
/*  
 * 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;
}

Übrigens: Wenn diese Tabelle in der Standardbibliothek vorhanden ist, muss keine Modelldateibeschreibung erstellt werden. In der Master-Slave-Bibliothek können Sie beispielsweise LoadModel('testQuestion'); und dann $this->testQuestion->useDbConfig = 'testBase';

verwenden. Das Obige ist der Inhalt von cakephp Aufrufen von Datentabellen in verschiedenen Datenbanken. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn