Symfony 1.4中的动态页面标题

Tom*_*Tom 8 action symfony1 metadata response title

我想知道是否有人在Symfony中设置动态元标题有任何好的建议/经验?

目前,我所知道的解决方案是使用以下代码在每个操作中单独设置标题:

$this->getResponse()->setTitle('This is a title');
Run Code Online (Sandbox Code Playgroud)

因为我还需要翻译标题,我可以在动作中调用i18n帮助程序,将它们包含在提取的XLIFF中.不需要特殊的SEO东西,只是一个干净的标题.

但是,上面的确需要我分别调整每一个动作.View.yml不合适,因为我经常每个模块有多个动作/模板.

是否有人知道Symfony有更好的方法,或者这确实是正确/唯一的方法吗?

谢谢.

NiK*_*iKo 25

你应该使用插槽.

在您的布局<head>标记中:

<title><?php echo get_slot('page_title', __('Default page title here')) ?></title>
Run Code Online (Sandbox Code Playgroud)

在动作模板中:

<?php slot('page_title', __('Action page title goes here')) ?>
Run Code Online (Sandbox Code Playgroud)


小智 5

我认为在每个动作中编写单独的标题都可以.但是如果你想添加一些全局前缀,你可以在布局中使用这样的东西:

<title>SITE NAME — <?= $sf_response->getTitle() ?></title>
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用操作中的preExecute()方法操作每个模块的标题.

  • 使用preExecute方法并不是一种很好的方法,因为它会将标题逻辑与控制器联系起来.它应该在视图中,因为它是表示层的一部分,而不是控制器. (2认同)