Tampaknya bagi saya bahwa menggunakan Doctrines ODM bukanlah cara yang tepat untuk mendekati ini. Anda masih dapat menggunakan Doctrine untuk terhubung ke database dan menanyakannya. Tetapi jika Anda tidak memiliki kelas entitas, penggunaan manajer entitas tampaknya tidak tepat.
Gunakan Doktrin untuk penanganan Koneksi
Berikut adalah cara membuat koneksi ke Database dengan doktrin Connection
kelas:
/** @var \Doctrine\Bundle\DoctrineBundle\ConnectionFactory $connectionFactory */
$connectionFactory = $this->getContainer()->get('doctrine.dbal.connection_factory');
$connection = $connectionFactory->createConnection(
array('pdo' => new \PDO("mysql:host=$hostname;dbname=$dbname", $username, $password))
);
Sekarang Anda dapat menggunakan $connection
sebagai PDO
sederhana objek:
$connection->executeQuery('SELECT * FROM your_table');
Anda dapat menambahkan kode ini sebagai layanan untuk membuatnya dapat diakses di mana saja.
Jika Anda ingin terhubung ke database yang berbeda untuk domain yang berbeda, Anda dapat menggunakan kode ini untuk mengidentifikasi domain:
$this->getRequest()->getHost();
Untuk mengakses domain dalam tindakan lakukan ini:
public function yourAction(Request $request, /* ... */)
{
// the Controller extends the Container. So need to get it here:
$connectionFactory = $this->get('doctrine.dbal.connection_factory');
// also access the domain like this:
$domain = $request->getHost();
}