Skip to content

Commit 8d5b07c

Browse files
committed
[DoctrineBridge] Add message to #[MapEntity] for NotFoundHttpException
1 parent 23a59f7 commit 8d5b07c

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

ArgumentResolver/EntityValueResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public function resolve(Request $request, ArgumentMetadata $argument): array
7373
}
7474

7575
if (null === $object && !$argument->isNullable()) {
76-
throw new NotFoundHttpException(sprintf('"%s" object not found by "%s".', $options->class, self::class).$message);
76+
throw new NotFoundHttpException($options->message ?? (sprintf('"%s" object not found by "%s".', $options->class, self::class).$message));
7777
}
7878

7979
return [$object];

Attribute/MapEntity.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function __construct(
3131
public ?bool $evictCache = null,
3232
bool $disabled = false,
3333
string $resolver = EntityValueResolver::class,
34+
public ?string $message = null,
3435
) {
3536
parent::__construct($resolver, $disabled);
3637
}
@@ -46,6 +47,7 @@ public function withDefaults(self $defaults, ?string $class): static
4647
$clone->stripNull ??= $defaults->stripNull ?? false;
4748
$clone->id ??= $defaults->id;
4849
$clone->evictCache ??= $defaults->evictCache ?? false;
50+
$clone->message ??= $defaults->message;
4951

5052
return $clone;
5153
}

Tests/ArgumentResolver/EntityValueResolverTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public function testResolveWithConversionFailedException()
153153
$request = new Request();
154154
$request->attributes->set('id', 'test');
155155

156-
$argument = $this->createArgument('stdClass', new MapEntity(id: 'id'));
156+
$argument = $this->createArgument('stdClass', new MapEntity(id: 'id', message: 'Test'));
157157

158158
$repository = $this->getMockBuilder(ObjectRepository::class)->getMock();
159159
$repository->expects($this->once())
@@ -167,6 +167,7 @@ public function testResolveWithConversionFailedException()
167167
->willReturn($repository);
168168

169169
$this->expectException(NotFoundHttpException::class);
170+
$this->expectExceptionMessage('Test');
170171

171172
$resolver->resolve($request, $argument);
172173
}

0 commit comments

Comments
 (0)