Symfony - переопределить sf_format при вызове get_partial - PullRequest
1 голос
/ 11 сентября 2009

Я делаю AJAX-вызов в моем проекте Symfony, поэтому он имеет sf_format 'js'. В представлении actionSuccess.js.php я вызываю get_partial для обновления содержимого страницы. По умолчанию он ищет частичное в формате 'js', так как sf_format все еще установлен как 'js'. Можно ли переопределить sf_format, чтобы он использовал обычную частичку html, которая у меня уже есть (чтобы у меня не было двух одинаковых частичек)?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2009

У меня была похожая проблема.

Я просмотрел код, и get_partial не дает никаких возможностей для изменения искомого формата ... думаю, вы можете изменить код, чтобы сделать это возможным, если вам нужно.

Я вместо этого пошел на переключение формата запроса - тоже, на мой взгляд, не идеально. Но лучше, чем редактировать файлы Symfony.

Для этого в контроллере:

$request->setRequestFormat('html');

или в виде

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

В обоих случаях, если вы хотите установить это значение позже, вы можете получить существующее значение, используя getRequestFormat ().

2 голосов
/ 01 июня 2010

Если вы ищете более устойчивое решение, вы можете прослушать 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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...