方式保持不變。
使用您的自定義EntityManager類覆蓋參數doctrine.orm.entity_manager.class
從orm.xml您的services.yml延伸Doctrine\ORM\EntityManager。
覆蓋create方法(它改變了一點點)
public static function create($conn, Configuration $config, EventManager $eventManager = null)
{
if (! $config->getMetadataDriverImpl()) {
throw ORMException::missingMappingDriverImpl();
}
switch (true) {
case (is_array($conn)):
$conn = \Doctrine\DBAL\DriverManager::getConnection(
$conn, $config, ($eventManager ?: new EventManager())
);
break;
case ($conn instanceof Connection):
if ($eventManager !== null && $conn->getEventManager() !== $eventManager) {
throw ORMException::mismatchedEventManager();
}
break;
default:
throw new \InvalidArgumentException("Invalid argument: " . $conn);
}
// return your instance of em
return new MyEntityManager($conn, $config, $conn->getEventManager());
}
錯誤,你看到的是,你在config.yml教義設置錯誤的事實。見reference。
你會怎麼做? – Touki
我剛剛添加了一些輔助方法,就像處理更大的實體組一樣。例如,我有一個方法需要多個實體,持久化它們,然後在操作結束時運行一次刷新。它們並不是很大的變化,但是當我開始構建其他東西時,這些小東西可以節省我的時間。 – jzimmerman2011
爲什麼不創建另一個以EntityManager'作爲構造函數參數的類,並且會處理您需要的方法? – Touki