在用框架cakephp做專案時遇到這樣的問題:需要新建一個資料庫,然後此專案與新建的庫中的表鏈接,用loadModel('testQuestion');然後$this->testQuestion->useDbConfig = ' testBase';這樣的邏輯應該是沒有問題的,但是在database配置中預設的函式庫是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庫中的該表名為名的model文件,然後註明使用哪個庫就好了。
順便說一下:如預設的庫中有這個表的話可以不用建model檔說明。如在主從函式庫中可以如此使loadModel('testQuestion');然後$this->testQuestion->useDbConfig = 'testBase';
以上就是cakephp 呼叫不同資料庫中的資料表 的內容,而更多相關內容請關注PHP中文網(www.php.cn)!