Question

Je passe un appel AJAX dans mon projet Symfony, il a donc le format sf_format de 'js'. Dans la vue actionSuccess.js.php, j'appelle get_partial pour mettre à jour le contenu de la page. Par défaut, il recherche le partial au format 'js' car le sf_format est toujours défini sur 'js'. Est-il possible de remplacer le sf_format de sorte qu'il utilise le partial 'html' habituel que j'ai déjà (pour ne pas avoir deux partiels identiques)?

Était-ce utile?

La solution

J'ai eu un problème similaire.

J'ai parcouru le code et get_partial ne vous donne aucune possibilité de changer le format recherché ... supposez que vous puissiez modifier le code pour rendre cela possible si vous en aviez besoin.

Au lieu de cela, j’ai choisi de changer le format de la demande - ce n’est pas idéal, à mon avis. Mais mieux que d’éditer les fichiers symfony.

Pour ce faire dans le contrôleur:

$request->setRequestFormat('html');

ou dans la vue

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

Dans les deux cas, si vous souhaitez définir cette valeur ultérieurement, vous pouvez récupérer la valeur existante à l'aide de getRequestFormat ().

Autres conseils

si vous recherchez une solution plus durable, vous pouvez écouter le view.configure_format et définir l'extension sfPHPView dans la configuration de votre application.

// 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');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top