2013-05-15 37 views
3

我需要讓我的User信息,當我打電話CakePHP的find返回結果與失蹤領域

$this->User->find('first', array('conditions' => array('User.id' => $user_id)));

結果只包含某些字段。

我目前已更新數據庫模式。在dev服務器上,它運行良好,並返回所有字段,但在生產服務器上缺少這些新字段。這些服務器具有完全相同的配置。

我已經嘗試刪除app/tmp/cache/models的內容,並且我正在使用File引擎進行緩存。

schema.php文件是最新的,app/tmp/cache/models中的文件內容表明這些字段存在,但我無法在生產服務器上檢索它們。唯一的區別可能是數據庫和調試級別。我試過複製數據庫並將其與開發服務器一起使用,並且運行良好。

我不能在生產服務器上將debug設置爲2。

你們有沒有經歷過任何類似的行爲?

PS我正在使用Cake 2.3.3

+0

你確定你沒有獲得緩存的結果嗎?如果你添加新的記錄,你是否能找到他們? – Chris

+0

我會說克里斯是正確的。 刪除tmp/cache/models的內容,然後您將啓動並重新運行。 – timstermatic

回答

8

答案其實很簡單。我不得不刪除app/tmp/models的內容,但實際上它的工作原理是刪除app/tmp/persistent的內容。

+1

你也可以打開調試 - 這應該強制它每次都得到新的緩存。 – Dave

+0

是的,這肯定會解決它,但由於它是一個生產服務器,這不是一種可能性 – Elwhis

+0

這只是PHP - 檢查?debug = 1和一個有效的IP - 如果是,請將調試設置爲2 - 否則爲1。 ..就是這樣的。如果您正在處理銀行賬戶或其他事情,這可能不是一個好主意,但對於大多數網站來說,我認爲這是理想的,因爲您可以更輕鬆地確定其他問題。 – Dave

3

我的回答與@Elwhis的略有不同。我在蛋糕2.4.5。對於我來說沒有app/tmp/models目錄或app/tmp/persistentmodelspersistent都在app/tmp/cache之下。就像@Elwhis,在app/tmp/cache/models目錄中查看缺少的字段,所以它很混亂。

修復,我刪除了app/tmp/cache/persistent的所有文件。請注意,如果您刪除目錄本身,您將從CakePHP獲得500錯誤。

我建議將該目錄中的文件刪除添加到您的部署過程。