Ho creato un'estensione di ramoscello per fare alcune cose e una di esse è il rendering di un modello. Come posso accedere dall'estensione della ramaglia all'ambiente motore e chiamare il metodo Render?Modello di rendering dall'estensione di ramoscello
risposta
È possibile definire l'estensione in modo che necessita l'ambiente. Twig lo passerà automaticamente alla funzione.
public function getFunctions()
{
return array(
new \Twig_SimpleFunction(
'myfunction',
array($this, 'myFunction'),
array('needs_environment' => true)
),
);
}
public function myFunction(\Twig_Environment $environment, string $someParam)
{
// ...
}
Usando questa funzione l'utente può passare l'istanza ambiente ramoscello ad un'estensione ramoscello
private $environment;
public function initRuntime(\Twig_Environment $environment)
{
$this->environment = $environment;
}
Poi fare $ this-> environment-> render() – ojreadmore
initRuntime è ora deprecato. Il needs_environment di @tvlooy è la risposta corretta. – MECU
risposta @tvlooy dammi un suggerimento ma non ha funzionato per me. Quello che avevo bisogno di per per realizzarla è:
namespace AppBundle\Twig;
class MenuExtension extends \Twig_Extension
{
public function getName()
{
return 'menu_extension';
}
public function getFunctions()
{
return [
new \Twig_SimpleFunction('myMenu', [$this, 'myMenu'], [
'needs_environment' => true,
'is_safe' => ['html']
])
];
}
public function myMenu(\Twig_Environment $environment)
{
return $environment->render('AppBundle:Menu:main-menu.html.twig');
}
}
avevo bisogno addtionaly aggiungo 'is_safe' => ['html']
per evitare autoescaping di HTML.
Ho anche registrato la classe come servizio di symfony:
app.twig.menu_extension:
class: AppBundle\Twig\MenuExtension
public: false
tags:
- { name: twig.extension }
nel template Twig Ho aggiunto {{ myMenu() }}
Io lavoro con "twig/twig": "~1.10"
e Symfony 3.1.3 versione
'needs_environment' => true è il vero affare qui. +1 –
- 1. Symfony2 ramoscello di rendering sub directory nidificazione
- 2. Symfony2 conteggio nel modello di ramoscello
- 3. Come si restituisce un modello di rendering di ramoscello come parte di una risposta JSON?
- 4. Variabili di ramoscello nella variabile di ramoscello
- 5. come eseguire il rendering di un modello wordpress a pagina singola con ramoscello
- 6. Handlebars Modello di rendering modello come testo
- 7. Modello ERB di rendering in modello RABL
- 8. Velocità di rendering modello Django
- 9. Modello di rendering di Django all'interno di un modello
- 10. Symfony 'trans' del dominio all'interno Ramoscello modello
- 11. Visualizzazione dei valori dell'oggetto symfony nel modello di ramoscello
- 12. Symfony2 percorso dell'immagine nel modello ramoscello
- 13. Rendering di un modello in una stringa?
- 14. Incorporare il controller del modulo nel modello di ramoscello: impossibile reindirizzare il controller incorporato dopo l'invio
- 15. Includere un modello di ramoscello come oggetto da passare in un altro modello?
- 16. Passaggio della variabile nel modello di ramoscello incluso con variabile nel nome del modello
- 17. Verifica se il modello esiste prima del rendering
- 18. jquery variabile all'interno di template ramoscello
- 19. Come posso ottenere gli errori di un singolo campo nel modello di ramoscello di Symfony2?
- 20. Diverse tecniche di rendering nel modello di manubri emberjs
- 21. Baffi stringa di modello interno di rendering come HTML
- 22. Modello di rendering di Django in un pop-up
- 23. Drupal 8 custom block (module) crea file modello ramoscello
- 24. Valore di incremento nel file di ramoscello
- 25. Corri attraverso Ramoscello quando si utilizza {% fogli di stile%} tag in Ramoscello con Symfony2
- 26. Come posso definire le variabili globali all'interno di un file modello di ramoscello?
- 27. Come faccio a leggere le impostazioni di configurazione da Symfony2 config.yml nel modello di ramoscello?
- 28. Come utilizzare uno stile di immagine in un modello di ramoscello Drupal 8?
- 29. Twig: selezione di determinati blocchi e loro rendering
- 30. Symfony2 ramoscello render, eccezione generata
\ Twig_Function_Method è obsoleto, utilizzare \ Twig_SimpleFunction – spectralsun