Birden çok bağlantım var ve bir depo sınıfım var. Depo sınıfının çoklu bağlantılara erişmesini istiyorum. Birden fazla veritabanı ana bilgisayarından veri almayı gerektiren bir rapor için.symfony2 - Bir havuzda veya sınıfta birden çok bağlantı kullanarak
config.yml
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%db_default_driver%"
host: "%db_default_host%"
etc..
bookings:
driver: "%db_readonly_bookings_driver%"
host: "%db_readonly_bookings_host%"
etc ...
sessions:
etc..
SalesJournalRepistory.php
namespace Portal\SalesJournalBundle\Repository;
use Doctrine\ORM\EntityRepository;
class SalesJournalRepository extends EntityRepository
{
public $connDefault = null;
public $connBookings = null;
public $connSessions = null;
function __construct()
{
// this is where I get the error
$this->connDefault = $this->getManager('default')->getConnection();
$this->connBookings = $this->getManager('bookings')->getConnection();
$this->connSessions = $this->getManager('sessions')->getConnection();
}
function testQuery(){
$sql = "SELECT * FROM testTableBookings LIMIT 10";
$stmt = $this->connBookings->prepare($sql);
$results = $stmt->fetchAll();
print_r($results);
}
function testQuery2(){
$sql = "SELECT * FROM testTableSessions LIMIT 10";
$stmt = $this->connSessions->prepare($sql);
$results = $stmt->fetchAll();
print_r($results);
}
}
Ben bir denetleyici çalışmak yapabilirsiniz
$connDefault = $this->getDoctrine()->getManager('default')->getConnection();
$connBookings = $this->getDoctrine()->getManager('bookings')->getConnection();
ancak muktedir isteyen im onu çalıştırmak için depodan. Aşağıdaki hata iletisini alıyorum Bu bir ipucu verebilir mi diye düşünebilirsiniz? enjecting entities Ancak ben biraz kafam karıştı ve olup olmadığından emin değil misiniz?
yay işe yaradı - teşekkürler. Uzun bir süredir bu konu üzerinde sıkışıp kaldım. Depo klasöründe tuttum, ancak EntityRepository uzantısını kullanmadım. Sadece bir rapor olarak onun bir hizmet olduğundan emin değilim ve im sorgular Deposu klasörüne ait olduğunu söyledi. Bu kurulum hakkında ne düşünüyorsun? –
@Robbo_UK hizmetlerinizi herhangi bir yere koyabilirsiniz - ancak depolar klasörünün depolar için olduğunu öneririm ... Yeni klasörler oluşturmak için Tamam – ManseUK