議論を反映するために更新
正しいエンティティ マネージャーを選択するためのカスタム ロジックを実装したいと考えています。これは、doctrine.class パラメーターをオーバーライドし、Doctrine\Bundle\DoctrineBundle\Registry を拡張して getManager() メソッドをオーバーライドするのと同じくらい簡単だと思いました。ただし、実行すると、次のエラーが表示されます。
ErrorException: Warning: strtolower() expects parameter 1 to be string, object given in /Applications/MAMP/htdocs/nmevent/app/bootstrap.php.cache line 119
コードは次のとおりです。
<?php
namespace NM\Bundle\MultiTenantBundle\Doctrine;
use Doctrine\Bundle\DoctrineBundle\Registry;
class TenantRegistry extends Registry
{
/**
* {@inheritdoc}
*
* @throws \InvalidArgumentException
*/
public function getManager($name = null)
{
if (null === $name) {
$name = $this->defaultManager;
}
$managers = $this->getManagers();
if (!isset($managers[$name])) {
throw new \InvalidArgumentException(sprintf('Doctrine %s Manager named "%s" does not exist.', $this->getName(), $name));
}
return $this->getService($managers[$name]);
}
}
ここで何が欠けていますか?