Symfony:CountryType转换在远程服务器上不起作用

时间:2017-10-17 14:26:05

标签: symfony

我想显示阿拉伯语的国家/地区列表,因为标题中提到它在localhost上正常工作但不在我的远程服务器上!! 我在config.yml中将arabic设置为默认语言:

parameters:
    locale: ar

framework:
    #esi: ~
    translator: { fallbacks: ['%locale%'] }

这是本地机器上的列表:
enter image description here 这就是我在远程服务器上得到的:
enter image description here 这是我的FormType:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('fullName', TextType::class, array(
                'required' => true,
            ))
            ->add('email', EmailType::class, array(
                'required' => true,
            ))
            ->add('country', CountryType::class)
            ->add($builder->create(
                'birthday', TextType::class, array(
                    'required' => false,
                ))
                ->addModelTransformer(new DateTransformer('Y-m-d'))
            )
            ->add('username', TextType::class, array(
                'required' => true,
            ))
            ->add('password', PasswordType::class, array(
                'required' => true,
            ))
        ;

        if($builder->getData()->getId() != null){
            $builder->add('image', AttachmentWithoutDescriptionType::class);
        }
    }

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

请检查远程服务器上的php.ini文件,以获取以下参数值:intl.default_locale。 CountryType使用Locale::getDefault()来猜测用户的区域设置。

如果您正在使用Apache Web服务器,您可以将一个参数放入.htaccess文件中以覆盖php.ini值。

php_value intl.default_locale ar_AR

或者只是将值硬编码到前端控制器(app.php,app_dev.php和命令)

\Locale::setDefault('ar_AR');

如果需要动态更改语言环境,则应使用以下代码段实现语言环境侦听器并设置所需的语言环境。