1
我在CakePHP中創建一個頁面,我試圖翻譯網址。我想要的是翻譯控制器的名稱,所以讓我說我有這個網址domain/da/product
那麼它應該把它翻譯成丹麥語,所以它成爲domain/da/produkt
。翻譯網址cakephp
我已經在AppHelper中編寫了自己的url方法,但是我在訪問翻譯模型時遇到了問題。當我搜索幫助者訪問模型時,人們反對這樣做。
那麼這將是一個適當的方式來做到這一點。當用戶使用鏈接時,我需要進行查找,然後將其翻譯回domain/da/product
。
這裏是Apphelper代碼
App::uses('Helper', 'View');
App::import("Model", "ControllerTranslation");
class AppHelper extends Helper {
public function url($url = null, $full = false) {
$Model = new ControllerTranslation();
$lang = Configure::read('Config.language');
$controller = $Model->find("first",array("conditions"=> array("ControllerTranslation.translation = "=> $url['controller'],"ControllerTranslation.language" => $lang)));
if (count($controller))
{
$url['controller'] = $controller["ControllerTranslation"]["translation"];
}
return parent::url($url, $full);
}
喜我用代碼更新了這個問題,現在的代碼工作正常。我剛剛讀到,從助手類調用模型是不好的MVC風格。 – 2013-03-17 15:04:01
我必須在路由器中再次創建反向查找,是否可以使用__()方法? – 2013-03-17 15:14:44
是的,問題出在我需要非翻譯價值的路由器上。因此,在我的示例中,它應該將產品翻譯回產品,因此它會自動找到productController – 2013-03-17 15:25:34