如何获取当前布局的名称?

时间:2011-07-27 13:12:43

标签: layout symfony1

当通过view.yml设置布局时,

symfony getLayout似乎不起作用。无论如何都要在控制器的动作类方法中得到它

3 个答案:

答案 0 :(得分:1)

我最近需要这个。你可以这样做,但你只需要将整个view.yml内容作为数组返回:

$view_array = sfViewConfigHandler::getConfiguration(array(sfConfig::get('sf_app_config_dir').'/‌​view.yml'));

只需调整sf_app_config_dir的相对路径(或使用其他标记)即可获得所需内容。

答案 1 :(得分:0)

这不是一项微不足道的任务。 view.yml,不在行动的“范围”中 也许,您可以在动作中使用setLayout,而不是在view.yml中使用 如果你不能,出于某些原因...你可以尝试这种方法来获取view.yml中的数据: Is it possible to get a value from view.yml in an action

答案 2 :(得分:0)

在操作中执行以下代码。它适用于两种情况,动作中的布局设置或view.yml中的布局。

$controller = $this->getContext()->getController();
$view = $controller->getView($this->getModuleName(), $this->getActionName(), 'Success');  // viewName == 'Success' (default)
$layout_name = $view->getDecoratorTemplate();  // e.g expected: layout.php

让我们知道它是否适合您。