1

我正在 CakePHP 中创建一个页面,我正在尝试翻译 url。我想要的是翻译控制器名称所以说我有这个 urldomain/da/product然后它应该把它翻译成丹麦语所以它变成了domain/da/produkt

我在 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);
}   
4

1 回答 1

0

如果您想要具有 translation = $url['controller'] 和 language = $lang 的 url,那么您应该使用语法:

$controller = $Model->find("first",
  array("conditions"=>   
    array(
           "ControllerTranslation.translation" => $url['controller'],                 
           "ControllerTranslation.language" => $lang
         )
       )
  );
于 2013-03-29T12:48:22.417 回答