Non c'è setTemplate() per i componenti! Lo so ma forse c'è un altro modo per farlo?Symfony: È possibile impostare Template per i componenti?
(La questione sembra essere di un framework PHP: http://www.symfony-project.org/)
Non c'è setTemplate() per i componenti! Lo so ma forse c'è un altro modo per farlo?Symfony: È possibile impostare Template per i componenti?
(La questione sembra essere di un framework PHP: http://www.symfony-project.org/)
componenti non gestiscono i modelli, è possibile utilizzare solo parziali. Se è necessario restituire una specifica parziale da dentro la classe componenti si può fare qualcosa di simile:
return get_partial('module/action', array('paramName' => $paramValue));
Avere uno sguardo al symfony book, chapter 7 view layer
Non esiste un metodo setTemplate su sfComponents. In pratica hai 3 opzioni:
executeFoo()
per il quale vuoi rendere il modello _bar.php
, chiama semplicemente include_partial('bar', $vars)
all'interno di _foo.php
.Per aggirare il problema, sto facendo:
echo get_component('module', 'action', $this->getVarHolder()->getAll());
return sfView::NONE;
Questo mi ha salvato un sacco di file modello vuoti. – Lg102
questo ha funzionato per me:
$this->setVar('template', 'templateName');
Ovviamente il modello deve essere nello stesso modulo esattamente.
Ma attenzione alla restituzione di sfView :: NONE su un componente non memorizzerà nella cache il componente, almeno nella versione 1.0 - vale sicuramente la pena controllare che il file di cache sia ancora generato – timmow
Sei sicuro che il componente non verrà ancora memorizzato nella cache anche se il testo è reso al suo interno? Se ciò è vero, allora sì, non utilizzare il metodo 3 se si desidera un componente capace di cache (non ho mai usato il metodo 3, me stesso). –
+1 per n.2 per mantenere le cose semplici – Dziamid