Saya memiliki templat Symfony2 Twig. Saya ingin menampilkan nilai parameter konfigurasi dalam template ranting ini (nomor versi). Karena itu saya mendefinisikan parameter config seperti ini:
parameters:
app.version: 0.1.0
Saya dapat menggunakan parameter konfigurasi ini di Controllers tapi saya tidak tahu bagaimana cara mendapatkannya di templat Twig saya.
symfony
configuration
twig
Timo Haberkern
sumber
sumber
Dengan mudah, Anda dapat mendefinisikan dalam file konfigurasi Anda:
Dan akses dalam template Anda dengan
Kalau tidak, harus dengan ekstensi Twig untuk mengekspos parameter Anda.
sumber
Anda juga dapat memanfaatkan sistem Parameter Layanan bawaan, yang memungkinkan Anda mengisolasi atau menggunakan kembali nilai:
Sekarang, variabel ga_tracking tersedia di semua templat Twig:
Parameter ini juga tersedia di dalam pengontrol:
Anda juga dapat mendefinisikan layanan sebagai variabel ranting global (Symfony2.2 +):
http://symfony.com/doc/current/templating/global_variables.html
Jika variabel global yang ingin Anda atur lebih rumit - katakan sebuah objek - maka Anda tidak akan dapat menggunakan metode di atas. Sebagai gantinya, Anda harus membuat Ekstensi Ranting dan mengembalikan variabel global sebagai salah satu entri dalam metode getGlobals.
sumber
Pada versi yang lebih baru dari Symfony2 (menggunakan
parameters.yml
bukanparameters.ini
), Anda dapat menyimpan objek atau array bukan pasangan nilai kunci, sehingga Anda dapat mengelola global Anda dengan cara ini:config.yml (diedit hanya sekali):
parameter.yml:
Dan kemudian dalam file ranting, Anda bisa menggunakan
{{ project.version }}
atau{{ project.name }}
.Catatan: Saya pribadi tidak suka menambahkan sesuatu
app
, hanya karena itu adalah variabel Symfony dan saya tidak tahu apa yang akan disimpan di sana di masa depan.sumber
Ans yang diberikan di atas adalah benar dan berfungsi dengan baik. Saya menggunakan cara yang berbeda.
config.yml
app.yml
app_twig.yml
Pengontrol di dalam:
Di dalam template / file ranting:
Untuk menggunakan output pengontrol:
Pengendali:
file templat / ranting:
Saya menyebutkan perbedaan untuk lebih memahami.
sumber
Dengan ekstensi Ranting, Anda dapat membuat
parameter
fungsi Ranting:TwigExtension.php:
service.yml:
sumber
Anda cukup mengikat
$this->getParameter('app.version')
pengontrol untuk memutar param dan kemudian merendernya.sumber
Di confing.yml
Dalam tampilan Ranting
sumber