Saya telah meletakkan beberapa variabel khusus di app / config / parameter.yml saya.
parameters:
api_pass: apipass
api_user: apiuser
Saya perlu mengakses ini dari controller saya, dan telah mencoba mengambilnya dengan
$this->get('api_user');
dari dalam file controller saya. Ketika saya mencoba ini, saya mendapatkan pesan kesalahan ini:
You have requested a non-existent service "api_user".
Apa cara yang benar untuk melakukan ini?
symfony
symfony-2.3
Bohr
sumber
sumber
get
metode dalam pengontrol menggunakan wadah juga, tetapi hanya bisa mendapatkan layanan dari wadah, bukan parameter. Anda perlugetParameter
mendapatkan parameter.$this->getContainer()->getParameter('api_user');
saya mendapatkan kesalahan fatal: Panggil ke metode tidak terdefinisi .. Longpath .. \ Controller :: getContainer ().$this->hasParameter()
belum berfungsi.The Clean Way - 2018+, Symfony 3.4+
Sejak 2017 dan Symfony 3.3 + 3.4 ada banyak cara yang lebih bersih - mudah diatur dan digunakan.
Alih-alih menggunakan container dan service / parameter locator anti-pattern, Anda bisa meneruskan parameter ke kelas melalui konstruktornya . Jangan khawatir, ini bukan pekerjaan yang menuntut waktu, melainkan pengaturan sekali & lupakan pendekatan.
Bagaimana cara mengaturnya dalam 2 langkah?
1.
app/config/services.yml
2. Apa saja
Controller
Upgrade Instan Siap!
Jika Anda menggunakan pendekatan yang lebih lama, Anda dapat mengotomatiskannya dengan Rektor .
Baca lebih banyak
Ini disebut pendekatan konstruktor melalui layanan locator .
Untuk membaca lebih lanjut tentang ini, periksa posting saya Cara Mendapatkan Parameter di Symfony Controller the Clean Way .
(Sudah diuji dan saya tetap memperbaruinya untuk versi utama Symfony baru (5, 6 ...)).
sumber
Saya mengirimkan contoh kepada Anda dengan swiftmailer:
parameter.yml
jasa:
kelas layanan:
sumber
Di Symfony 4, Anda dapat menggunakan
ParameterBagInterface
:dan di
app/config/services.yaml
:Ini bekerja untuk saya di kelas controller dan form. Rincian lebih lanjut dapat ditemukan di blog Symfony .
sumber
$meetupApiKey
saya tahu apa yang diharapkan sedikit lebih baik daripada di$parameterBag
Kamu bisa memakai:
Untuk informasi lebih lanjut, saya sarankan Anda membaca dokumen:
http://symfony.com/doc/2.8/service_container/parameters.html
sumber
Dalam Symfony 4.3.1 saya menggunakan ini:
layanan.yaml
FrontController.php
sumber
$this->getParameter('foo')
. Itulah yang saya lakukan untuk membuatnya bekerja di SF 4.8.Anda juga bisa menggunakan:
Kunjungi http://symfony.com/doc/current/service_container/parameters.html
sumber