【发布时间】:2021-03-17 06:37:27
【问题描述】:
我在 api 平台中为用户实例使用自定义端点和自定义控制器。
class PayingMembershipForOthersController
{
private ValidatorInterface $validator;
public function __construct(ValidatorInterface $validator)
{
$this->validator = $validator;
}
public function __invoke(User $data)
{
$this->validator->validate($data);
try {
$paymentService->paymentMembership($data);
} catch(\Exception $e) {
throw $e
}
return $data;
}
}
如果找不到用户,我的 $userService 会抛出自定义异常,如下所示。
class XXXException extends \Exception
{
public function __construct(
$message = "user.notfound.message", // Translation file key.
$code = 0,
Throwable $previous = null
) {
parent::__construct($message, $code, $previous);
}
}
所以我想在这里发送翻译消息(UserNotFound [de_DE] 和 UserNotFound [en_EN]。所以你能帮我吗。
提前谢谢..!!!
【问题讨论】:
-
这些异常在抛出时是否被捕获或转换为
Response? -
你能指导我如何实现“异常被缓存或在抛出时转换为响应”吗?
-
异常似乎被
标准化。也许您可以用一个子类的实例替换这个服务,该子类的一个实例覆盖 ::getErrorMessage 由一个执行翻译的实现?这样日志上的错误将不会被翻译,这可能解释性较差,但更容易搜索日志。
标签: api symfony validation api-platform.com