0
在symfony應用程序中,如何將變量$dynamicPart = 'I always change!';
轉換爲throw new NotFoundException('error.static.dynamic');
以便獲取下面的消息?將變量傳遞給動態異常消息以供轉換器在樹枝模板中使用
{
"error": {
"code": "error.static.dynamic",
"message": "Dynamic message is invalid - "I always change!"."
}
}
靜態版本工作正常,因爲它始終是相同的,所以這個throw new NotFoundException('error.static.invalid');
將successfuly輸出:
{
"error": {
"code": "error.static.invalid",
"message": "Static message is invalid."
}
}
當前代碼
messages.en.yml
error:
static:
invalid: Static message is invalid.
dynamic:
invalid: Dynamic message is invalid - "%dynamicPart%".
exception.json.twig
{
{
{
'error': {
'code': exception.message,
'message': exception.message|trans
}
}|json_encode|raw
}
}
如果我使用:
throw new NotFoundException(
$this->translator->trans(
'error.static.dynamic',
['%dynamicPart%' => 'I always change!']
)
);
然後我得到:
{
"error": {
"code": "Dynamic message is invalid - "I always change!".",
"message": "Dynamic message is invalid - "I always change!"."
}
}
我我會讓你知道我檢查它,但現在被其他東西阻塞。謝謝。 – BentCoder
只是再次檢查你的答案。我試圖通過消息獲得密鑰('error.dynamic.invalid')。你應該假設你永遠不會知道'error.dynamic.invalid'。 – BentCoder
我使用您的messages.en.yml文件的關鍵字構建了我的答案。我實際上有點困惑,因爲你顯示3個不同的鍵:error.dynamic.invalid,exception.message和error.static.dynamic – OlivierC