这是我今天目睹的一些奇怪行为,我想知道为什么.. 我会直截了当地说:
所以我们使用 symfony 和 fos elasticabundle 的 a2lix 翻译
class Class
{
use Translatable;
}
class ClassTranslation implements \A2lix\I18nDoctrineBundle\Doctrine\Interfaces\OneLocaleInterface
{
use Translation;
}
在这种情况下,一旦我运行
php 应用程序/控制台 fos:elastica:populate
我得到:
[InvalidArgumentException] 参数“语言环境”不存在。
但参数实际上在特征中(来自供应商,包括 2 个特征可翻译方法和可翻译属性)
问题是为什么会发生这种情况。我们拥有来自 trait 的属性,但是一旦我们运行命令它就找不到它。
好的,现在奇怪的部分来了!
在这种情况下,一切都按预期工作:
class Class
{
use Translatable;
}
class ClassTranslation
{
use Translation;
}
如果我决定不实现该命令顺利运行的接口,则该接口只会强制您为 locale 属性设置 getter 和 setter。我只是想知道为什么会这样。