通过服务在Sylius(latest-master)中以编程方式创建产品时,我有一种非常奇怪的行为。
我已经定义了一个以容器作为参数的服务。
my_web.product_from_entity_creator:
class: My\WebBundle\Service\ProductFromEntityCreator
arguments:
- "@service_container"
在此服务中,如果我这样做:
$localeCode = $this->container->get('sylius.context.locale')->getLocaleCode();
$allLocales = $this->container->get('sylius.locale_provider')->getAvailableLocalesCodes();
error_log("Locale is " . $localeCode);
error_log("All locales : " . implode(', ',$allLocales));
我有以下结果:
Locale is fr
All locales : fr_FR
我不明白这是怎么可能的?区域设置应为 fr_FR ,而不是其他任何内容......
唯一的问题是产品的某些属性是使用错误的区域设置创建的,在访问产品版本页面时会触发500。 但据我了解,语言环境应该返回' fr_FR'作为区域设置代码,而不是' fr'
我已在代码中检查无处不在,parameters.locale
为fr_FR
,default_locale
为fr_FR
,server
/ PHP
区域设置也是fr_FR
。
有人知道可能来自何处或遇到同样的行为?这个服务器有关系吗?客户相关?
非常感谢
答案 0 :(得分:1)
萨吕,
Je crois que le sylius.context.locale
provient de ta conf parameters.yml et les autres locales sontcellesdéclaréesdansle backoffice ...
Vérifiequetu n'aies pas 2localesdifférentesdéclaréesdansle parameter.yml et config.yml(çavientde m'arriveretçam'afaitpéteruncâble)。 C'est cette locale que Sylius使用comme languepardéfautdansles formulaires du backoffice。 Ensuite dans ta basededonnéesvérifiebien que tuasdéclarécettelocale et que tu as du fr_FR partout et plus un seul en_US(la valeur qu'ils forcentpardéfautàl'instaldede Sylius et qui fait bien chier)
Bon courage avec Sylius ... La docesttrèsincomplètevoirsouventobsolète。
PS:si t'as besoin,il y a slack Sylius pour discuteretéchangeravevelesautresdéveloppeursetoùtupeux partager ton lien Stackoverflow。关于est au moins2françaisdessus:wyllyjon et tvequaud