2009-09-11 15 views
1

我在symfony項目中做了一個AJAX調用,所以它有一個'js'的sf_format。在actionSuccess.js.php視圖中,我調用get_partial更新頁面上的內容。默認情況下,由於sf_format仍然設置爲'js',所以它會查找'js'格式的部分。是否有可能重寫sf_format,以便它使用我已有的常規'html'部分(這樣我就不必具有兩個相同的部分)?Symfony - 在調用get_partial時覆蓋sf_format

回答

3

我有類似的問題。

我查看了代碼,get_partial沒有給你任何範圍來改變查找的格式......猜你可以修改代碼,如果你需要的話可以修改代碼。

我改爲轉換請求格式 - 在我看來也不理想。但比編輯symfony文件更好。

到控制器中做到這一點:

$request->setRequestFormat('html'); 

或視圖

$sf_context->getRequest()->setRequestFormat('html'); 

在這兩種情況下,如果要將此回來之後,你可以檢索使用getRequestFormat現有值()。

+3

太棒了,本!謝謝!我在視圖中設置了請求格式,調用$ sf_request-> setRequestFormat('html')而不是使用$ sf_context實際上更簡單。 – deadwards 2009-09-18 14:55:10

+0

嗯,我的壞,$ sf_request幫手是一個整潔的捷徑,忘記了。 – benlumley 2009-10-02 11:28:44

2

如果您正在尋找更可持續的解決方案,您可以聽view.configure_format並在您的應用程序配置中設置sfPHPView擴展。

// in apps/api/config/apiConfiguration.class.php 
public function configure() { 
    $this->dispatcher->connect('view.configure_format', array($this, 'configure_formats')); 
} 

public function configure_formats(sfEvent $event) { 
    // change extension, so our module templates and partials 
    // for xml do not need the .xml.php extension 
    $event->getSubject()->setExtension('.php'); 
}