我正在使用CakePHP 1.3和內置電子郵件功能,如documentation中所述。我有位於app/views/elements/email/html/reservation.ctp的模板的html版本,並且按預期工作。未使用主題版本的電子郵件模板
$this->Email->template = 'reservation'; // no '.ctp'
我也有一個主題設置和大多數主題文件正確覆蓋默認文件。我的問題是從主題網站調用主題電子郵件模板時未使用,它仍然使用默認路徑中的電子郵件模板文件。
缺省值是:應用程序/視圖/元素/電子郵件/ HTML/reservation.ctp
的主題是:應用程序/視圖/主題/的MyTheme /元/電子郵件/ HTML/reservation.ctp
電子郵件模板分配應該自動處理主題而不需要硬編碼路徑,或者是否有其他解決方案?任何人都有這個問題?
你是從發送控制器內的電子郵件?如果是這樣,'view'類是否設置爲'Theme'?電子郵件組件將使用與控制器相同的視圖類,*應該*也使用相同的主題:請參閱源代碼[here](https://github.com/cakephp/cakephp/blob/1.3/cake/libs /controller/components/email.php#L455)。請注意:您正在開發一個* new *項目的項目? CakePHP 1.3真的變老了,並且在CakePHP 2.x中也進行了很多改進(主題上也有改進) – thaJeztah
是的,view被設置爲AppController中的主題。我看到了這個問題。我根據AppController的beforeRender函數中的url設置主題。發送電子郵件永遠不會調用beforeRender函數,因此主題從不設置。創建一個新的函數來設置主題,然後我調用beforeRender中的函數或根據需要。感謝您的評論,幫助我澄清了這個問題。 – user167850
要我發表它作爲答案? – thaJeztah