diff --git a/src/Configuration.php b/src/Configuration.php index c1ecdcc4d..7537af72b 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -175,7 +175,7 @@ public function delayFlush(callable $callback): mixed * @phpstan-param Proxy|TObject|class-string $objectOrClass * @phpstan-return RepositoryProxy */ - public function repositoryFor(object|string $objectOrClass): RepositoryProxy + public function repositoryFor(object|string $objectOrClass, string|null $persistentManagerName = null): RepositoryProxy { if ($objectOrClass instanceof Proxy) { $objectOrClass = $objectOrClass->object(); @@ -186,7 +186,7 @@ public function repositoryFor(object|string $objectOrClass): RepositoryProxy } /** @var EntityRepository|null $repository */ - $repository = $this->managerRegistry()?->getRepository($objectOrClass); + $repository = $this->managerRegistry()?->getRepository($objectOrClass, $persistentManagerName); if (!$repository) { throw new \RuntimeException(\sprintf('No repository registered for "%s".', $objectOrClass)); diff --git a/src/ModelFactory.php b/src/ModelFactory.php index b74390528..ea3f74b16 100644 --- a/src/ModelFactory.php +++ b/src/ModelFactory.php @@ -260,9 +260,9 @@ final public static function assert(): RepositoryAssertions /** * @phpstan-return RepositoryProxy */ - final public static function repository(): RepositoryProxy + final public static function repository(string|null $persistentManagerName = null): RepositoryProxy { - return static::configuration()->repositoryFor(static::getClass()); + return static::configuration()->repositoryFor(static::getClass(), $persistentManagerName); } /** diff --git a/src/Proxy.php b/src/Proxy.php index 215303f5c..80b41a1e3 100644 --- a/src/Proxy.php +++ b/src/Proxy.php @@ -207,9 +207,9 @@ public function forceGet(string $property) return Instantiator::forceGet($this->object(), $property); } - public function repository(): RepositoryProxy + public function repository(string|null $persistentManagerName = null): RepositoryProxy { - return Factory::configuration()->repositoryFor($this->class); + return Factory::configuration()->repositoryFor($this->class, $persistentManagerName); } public function enableAutoRefresh(): self diff --git a/src/functions.php b/src/functions.php index 2d9f028bb..509b57f27 100644 --- a/src/functions.php +++ b/src/functions.php @@ -110,9 +110,9 @@ function instantiate_many(int $number, string $class, array|callable $attributes * * @return RepositoryProxy */ -function repository(object|string $objectOrClass): RepositoryProxy +function repository(object|string $objectOrClass, string|null $persistentManagerName = null): RepositoryProxy { - return Factory::configuration()->repositoryFor($objectOrClass); + return Factory::configuration()->repositoryFor($objectOrClass, $persistentManagerName); } /**