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