如何根据Controller中的条件更改模板的路径?

时间:2015-06-17 08:45:59

标签: cakephp-3.0

我是使用cakephp-3.0的新手。

我正在计划根据用户的浏览器/代理显示不同的模板视图。 在cakephp2.x中,代码如下所示:

if ($this->DisplayModeService->hasSpViewSupport()) {
    App::build([
        'View' => [APP . 'View/SmartPhone/', APP . 'View/'],
    ]);
}

但在cakephp3.0中,它位于app.php:

return [
    'App' => [
        'paths' => [
            'templates' => [
                APP . 'Template' . DS . 'SmartPhone' . DS,
                APP . 'Template' . DS, 
            ],
        ],
    ],
  ];

但我想只在页面有smartPhone版本时更改模板路由。 在上面的情况下,无论如何它都会跳转到SP版本。 (因为我想为同一页保留相同的名称)

例如:

/Template/SmartPhone/profile.ctp,/Template/profile.ctp。(有SP / PC版)

/Template/news.ctp(仅限PC版)

有可能吗?

1 个答案:

答案 0 :(得分:0)

你最好使用$ this-> request-> is('mobile')和主题