2014-03-24 197 views
0

我剛剛遇到了一個惱人的問題,我沒有找到任何答案(在SO或整個Internet中)。檢查CakePHP中語言文件夾中的查看文件是否存在

我想開發一個多語言網站,並且我一直在遵循CakePHP's Internalization & Localization tutorial。我現在試圖將語言文件夾放在Views文件夾中,因此我可以根據用戶所需的語言簡單地將用戶重定向到視圖文件。問題是,在一段代碼是應該做的,根本不在我的應用程序工作:

// App Controller Code. 
public function beforeFilter() { 
    $locale = Configure::read('Config.language'); 
    if ($locale && file_exists(VIEWS . $locale . DS . $this->viewPath)) { 
     // e.g. use /app/View/fra/Pages/tos.ctp instead of /app/View/Pages/tos.ctp 
     $this->viewPath = $locale . DS . $this->viewPath; 
    } 
} 

我得到的狀態,有沒有VIEWS不斷,這確實是真正的錯誤。但教程中沒有提到,所以我在這裏輸了一些。我實際上可以從if聲明中刪除第二個條件,並且代碼可以工作,但是我知道有一天我可能想添加對於兩種語言都是相同的視圖文件(例如只有圖像的視圖),並且不應該有重定向在這種情況下語言文件夾,這正是這個代碼會做什麼。

我知道我可能會錯過一些很明顯的事情,因爲即使教程沒有提及它,但如果有人能分享一些幫助,我會很高興。

回答

0

我發現這個問題很骯髒的解決方案,我仍然希望有更好的解決方案出現。總之,要解決:

我簡單地更換條件:

file_exists(VIEWS . $locale . DS . $this->viewPath)) 

file_exists(APP . DS . 'View' . DS . $locale . DS . $this->viewPath) 

現在我的應用程序找到正確的路徑。

相關問題