本系列目錄
一、Phalcon在Windows上安裝 《Phalcon入坑指南系列 一》
二、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》
三、Phalcon如何切換資料庫《Phalcon入坑指南系列 三》
四、Phalcon如何建立多模組並能進行訪問 《Phalcon入坑指南系列 四》
前言
在第三節中Phalcon如何切換資料庫《Phalcon入坑指南系列 三》
咔咔說明了如何切換資料庫,也就是連線多個數據庫。
第三節使用的是一個模組,今天我們來聊聊如何使用Phalcon來實現多模組連線不同資料庫。
一、在多模組下建立模型檔案
在第四節中使用了命令列建立了控制器,但是沒有給大家說明如何使用命令列來建立模型檔案。
執行命令phalcon model --name version --output=app/modules/kaka/models
即可。
這個命令執行也就是建立一個version的模型檔案,在app/modules/kaka/models
這個目錄下。
建立過程中咔咔遇到的問題分為倆種,接下來分別看一下。
問題一
第一個問題SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
這個問題想必都知道答案!
如果你不知道這個問題的原因那就需要好好補一下基礎了。
這個問題就是因為在框架裡邊沒有配置資料庫資訊造成 的。
問題二
問題二的報錯資訊ERROR: Table "version" does not exist.
這個問題不會立即出現。
假設跟咔咔一樣連線的是enen這個庫,那麼執行建立模型檔案的命令是不會報錯的。
那麼這個錯誤是怎麼來的呢?是咔咔連線的是test資料庫,建立的模型檔案確實enen庫的表,所以會造成這個問題。
這個問題如何處理下文在聊。
二、如何在多模組下連線不同資料庫
在Phalcon如何切換資料庫《Phalcon入坑指南系列 三》
中咔咔也演示了資料庫連線的位置。
可以看到在模組下同樣也是在server下進行連線的。
在單模組下是可以直接在server中再把另一個庫註冊進來,然後在模型檔案中使用$this->setConnectionService('enen');
進行切換。
那麼接下來看多模組是如何是如何實現的。
將services檔案中的連線資料庫先註釋掉。
這塊程式碼需要自己去看,後期有時間了在解析這個module這個檔案是如何載入的吧!
在module這個檔案下有一個方法為registerServices
,並注入了di
那麼肯定就可以在這裡邊連線資料庫了,按照咔咔的方式把資料庫資訊先給寫上。
這裡需要注意的是需要引入use Phalcon\Db\Adapter\Pdo\Mysql;
這點切記。
同樣給另一個模組kaka的module檔案也加上對應的資料庫連線資訊。
分別再倆個模組下進行測試
列印結果一
列印結果二
可以看到Phalcon多模組如何實現連線不同資料庫 實現起來是如此的簡單。
三、多模組下分別建立對應資料庫的模型檔案
在第一節中遇到的了一個問題如果沒有分開連線資料庫,假設現在在services中預設連線的是test資料庫。
建立模型檔案的表在enen庫中,會發現是會出現報錯的。
再根據第二節的解讀,把services檔案中的配置資料庫資訊先註釋掉。
然後在不同模組下的module下分別連線不同的資料庫再測試一下。
kaka模組下建立模型
frontend模組下建立模型
會發現依然處於報錯狀態。
如果需要緊急處理就直接修改config中的配置資訊即可
也就是說想要在那個模組下建立對應資料庫表的模型檔案就需要在config檔案中修改對應的配置資訊即可。
這個問題暫時咔咔是這樣解決的,後期這個問題肯定會進行解決,關注咔咔《Phalcon入坑指南系列 》
系列文章即可。
總結
本文主要處理Phalcon使用過程中的三個問題
一、在多模組下建立模型檔案
二、如何在多模組下連線不同資料庫
三、多模組下分別建立對應資料庫的模型檔案
如果你正好需要這其中的功能,那麼就不要吝嗇你手中的贊,給咔咔來一個吧!
“
堅持學習、堅持寫作、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大網際網路中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。
”