我正在我的symfony项目中进行AJAX调用,因此它的sf_format为'js'。在actionSuccess.js.php视图中,我调用get_partial来更新页面上的内容。默认情况下,它会以'js'格式查找部分,因为sf_format仍然设置为'js'。是否有可能覆盖sf_format,以便它使用我已经拥有的常规'html'部分(这样我就不必有两个相同的部分)?
答案 0 :(得分:3)
我遇到了类似的问题。
我查看了代码,并且get_partial没有给你任何改变所查找格式的空间...猜你可以修改代码,以便在需要的时候实现。
我改为转换请求格式 - 在我看来也不理想。但比编辑symfony文件更好。
要在控制器中执行此操作:
$request->setRequestFormat('html');
或在视图中
$sf_context->getRequest()->setRequestFormat('html');
在这两种情况下,如果您想在之后重新设置,可以使用getRequestFormat()检索现有值。
答案 1 :(得分:2)
如果您正在寻找更具可持续性的解决方案,您可以收听view.configure_format
并在您的appflication配置中设置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');
}