Vous devez vérifier avant le rendu si ce modèle existe, et si ce n'est pas le cas, définissez le modèle par défaut. Cela peut être fait en ajoutant un filtre qui vérifie cela. Alors ...
Ajouter ce filtre à un lib/dossier, par exemple /lib/filters/ViewFilter.class.php
<!-- /lib/filters/ViewFilter.class.php -->
class ViewFilter extends sfFilter{
public function execute($filterChain){
if ($this->isFirstCall()){
//get context
$context = $this->getContext();
//get module name
$module = $context->getModuleName();
//get action name
$action = $context->getActionName();
//get template file name for this request
$templateFile = $action . "Success.mobile.php";
//set physical path of that template
$path = sfConfig::get('sf_app_module_dir').DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR."templates".DIRECTORY_SEPARATOR. $templateFile;
//check if exists
if(!file_exists($path))
//if is not, set html format to render the {$action}Success.php
$context->getRequest()->setRequestFormat('html');
}
$filterChain->execute();
}
}
Ensuite, ajoutez à votre filters.yml
<!-- /apps/frontend/config/filters.yml -->
rendering: ~
security: ~
# insert your own filters here
ViewFilter:
class: ViewFilter
cache: ~
execution: ~
Et devrait fonctionner :) Si vous ne savez pas ce qu'est un filtre et ce qu'il fait s'il vous plaît se référer à Symfony's Filters Guide pour vous aider à démarrer.
Je pensais ajouter du code à l'action; c'est tellement mieux! – Nathan
Cela semble bon. Je vais vérifier plus tard si cela fonctionne :) – miguelSantirso
Cela a-t-il fonctionné pour vous? – Pabloks