2012-09-06 38 views
0

我需要基於從該網站是被瀏覽的國家來顯示不同的標誌圖像(在layout.php中)。在動作中設置它不起作用,因爲佈局在preExecute()(或任何其他動作)被調用之前呈現。如何在symfony 1.4中佈局渲染之前設置文化?

我將如何設置區域性佈局之前被渲染,然後在layout.php中這個變量調用?

回答

0

我不認爲這是真的。佈局在調用操作後呈現。例子是你可以用$ this-> setLayout()來改變actions.class中的de佈局。 無論如何,我認爲你可以使用一個插槽來解決你的問題。 在佈局:

<?php if(!has_slot('logo_image')) { ?> 
<img src="<?php ... default logo;?>" /> 
<?php else { include_slot('logo_image'); } ?> 

然後,在你的動作模板指標(如indexSuccess)

<?php 
slot('logo_image'); 
?><img src="<?php .... l10n image ?>" /> 
<?php end_slot(); ?> 
1

你應該閱讀文檔的用戶文化section。當您設置用戶正確的文化,你可以在模板和佈局以及使用$sf_user->getCulture()

注:@glerendegui是正確的佈局動作後,甚至模板後呈現。