Di app/config/config.php kita dapat:

$container->loadFromExtension('doctrine', array(
    'dbal' => array(
        'driver'   => 'pdo_mysql',
        'host'     => '%database_host%',
        'dbname'   => '%database_name%',
        'user'     => '%database_user%',
        'password' => '%database_password%',
    ),
));

Tetapi apakah mungkin untuk mendapatkan Entity Manager di file ini?

$container->getDoctrine()

Kembali:

Mencoba memanggil metode yang tidak ditentukan bernama "getDoctrine" dari kelas "Symfony\Component\DependencyInjection\ContainerBuilder".

$container->get('doctrine')

Kembali:

Anda telah meminta "doktrin" layanan yang tidak ada

$container->get('doctrine.orm.entity_manager')

Kembali:

Anda telah meminta layanan "doctrine.orm.entity_manager" yang tidak ada

2
remgo 14 Desember 2017, 13:51

1 menjawab

Jawaban Terbaik

Tidak, ini tidak mungkin. Anda tidak dapat mengakses layanan di langkah membangun. Anda dapat menggunakan CompilerPass untuk mengakses layanan dan metode panggilan atau alias.

Atau jika Anda hanya ingin meneruskan EntityManager ke layanan, gunakan kelas Reference.

1
Markus 14 Desember 2017, 11:25