können Sie versuchen, Ihre eigene driver_class zu implementieren und zu verwenden und den search_path in den PDO DriverOptions, z. in Ihrer symfony config:
namespace YourNamespace\YourBundle\Doctrine\DBAL\Driver\PDOPgSql;
use Doctrine\DBAL\Platforms;
class Driver extends \Doctrine\DBAL\Driver\PDOPgSql\Driver implements \Doctrine\DBAL\Driver
{
public function connect(array $params, $username = null, $password = null, array $driverOptions = array())
{
// ADD SOME ERROR HANDLING WHEN THE SEARCH_PATH IS MISSING...
$searchPath = $driverOptions['search_path'];
unset($driverOptions['search_path']);
$connection = new \Doctrine\DBAL\Driver\PDOConnection(
$this->_constructPdoDsn($params),
$username,
$password,
$driverOptions
);
$connection->exec("SET SEARCH_PATH TO {$searchPath};");
return $connection;
}
/**
* Constructs the Postgres PDO DSN.
*
* @return string The DSN.
*/
protected function _constructPdoDsn(array $params)
{
$dsn = 'pgsql:';
if (isset($params['host']) && $params['host'] != '') {
$dsn .= 'host=' . $params['host'] . ' ';
}
if (isset($params['port']) && $params['port'] != '') {
$dsn .= 'port=' . $params['port'] . ' ';
}
if (isset($params['dbname'])) {
$dsn .= 'dbname=' . $params['dbname'] . ' ';
}
return $dsn;
}
}
Sie benötigen die _constructPdoDsn Methode, weil sie nicht als geschützt in \ Lehre \ DBAL \ Driver \ PDOPgSql definiert ist \:
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_pgsql
driver_class: YourNamespace\YourBundle\Doctrine\DBAL\Driver\PDOPgSql\Driver
options:
search_path: YOUR_SEARCH_PATH
Der Fahrer so etwas wie dies aussehen könnte Treiber. Es ist etwas "hacky", weil wir PDO DriverOptions verwenden und ich bin mir nicht sicher, ob das ein guter Weg ist - aber es scheint zu funktionieren.
Hoffe, das hilft.
Mit freundlichen Grüßen,
Patryk
Symfony2 verwendet nur die Doktrin, Sie sollten es auf die gleiche Weise lösen können. – hakre
ja. aber ich weiß nicht, wo ich haken sollte :(ich bin absolut neu zu symfony2 ... –
Suchen Sie auch nach dem EntityManager. Wenn nichts geht, ist grep Ihr Freund. – hakre