我需要根据浏览网站的国家/地区显示不同的徽标图像(在 layout.php 中)。在操作中设置它不起作用,因为布局是在调用 preExecute() (或任何其他操作)之前呈现的。
在呈现布局之前如何设置文化,然后在 layout.php 中调用此变量?
我需要根据浏览网站的国家/地区显示不同的徽标图像(在 layout.php 中)。在操作中设置它不起作用,因为布局是在调用 preExecute() (或任何其他操作)之前呈现的。
在呈现布局之前如何设置文化,然后在 layout.php 中调用此变量?
您应该阅读文档的用户文化部分。当您正确设置用户文化时,您也可以$sf_user->getCulture()
在模板和布局中使用。
注意:@glerendegui 是正确的,布局是在操作之后甚至在模板之后呈现的。
我不认为那是真的。调用操作后呈现布局。例如,您可以使用 $this->setLayout(); 更改 actions.class 中的 de 布局;无论如何,我认为您可以使用一个插槽来解决您的问题。在布局中:
<?php if(!has_slot('logo_image')) { ?>
<img src="<?php ... default logo;?>" />
<?php else { include_slot('logo_image'); } ?>
然后,在您的操作模板中(fe indexSuccess)
<?php
slot('logo_image');
?><img src="<?php .... l10n image ?>" />
<?php end_slot(); ?>