3
我想通過擴展將控制器操作添加到Page_Controller類中。銀條紋擴展控制器操作
想要的結果是能夠去www.mysite.com/setlanguage/spanish
例如,並通過瀏覽器cookie更新網站的語言西班牙語。
但是,我是SilverStripe中擴展的新故障,到目前爲止,當我訪問控制器操作的鏈接時,我得到的是一個404錯誤。
請看看我的代碼...
class Page_ControllerLanguageExtension extends Extension {
private static $allowed_actions = array(
'setLanguage'
);
public function setLanguage(SS_HTTPRequest $request) {
$requestedLanguage = $request->param('ID');
$languageCookie = new Cookie;
$languageCookie->set('site_language', $requestedLanguage);
return $this->owner->RedirectBack();
}
}
而且我與陽明配置文件的分機呼叫:
Page_Controller:
extensions:
- Page_ControllerLanguageExtension
在此先感謝。
嘗試調用'www.mysite.com/ home/setlanguage/spanish'或'www.mysite.com/ [page-url-segment]/setlanguage/spanish'。你的代碼看起來不錯。我認爲唯一的問題是你不能在沒有URL段的主頁上調用一個操作。 – 3dgoo
看起來不錯。如果你需要URL'/ setlanguage/spanish /',你需要將你的控制器路由到'setlanguage',並在'index()'方法中得到參數。 – wmk
就這麼簡單!完美,謝謝你們兩位。 – Xander