【问题标题】:Symfony2 Sylius setting the default localeSymfony2 Sylius 设置默认语言环境
【发布时间】:2015-09-30 09:06:05
【问题描述】:

当我想创建一个货件时,我收到了错误:

An exception has been thrown during the rendering of a template ("No locale has been set and current locale is undefined.") in SonataAdminBundle::standard_layout.html.twig at line 148.

我想我需要为 sylius 设置默认语言环境,但我尝试了很多示例,但都没有帮助..

我目前有这个设置:

Config.yml:

sylius_shipping:
    driver: doctrine/orm # Configure the Doctrine ORM driver used in documentation.
    classes:
        shipping_method:
            model: Application\Sylius\ShippingBundle\Entity\ShippingMethod
            translation:
                model: Application\Sylius\ShippingBundle\Entity\ShippingMethodTranslation
        shipping_method_rule:
            model: Application\Sylius\ShippingBundle\Entity\Rule
        shipment:
            model: Application\Sylius\ShippingBundle\Entity\Shipment
        shipment_item:
            model: Application\Sylius\ShippingBundle\Entity\ShipmentItem
        shipping_category:
            model: Application\Sylius\ShippingBundle\Entity\ShippingCategory

#stof_doctrine_extensions:
#    orm:
#        default:
#            timestampable: true

parameters:
    sylius.locale: %locale%

#sylius_locale:
#    driver: doctrine/orm

sylius_translation:
    default_locale: "%locale%"



#sylius_translation:
#    default_locale: %sylius.locale%

Parameters.yml:

sylius.currency_importer.ecb.base_currency: EUR
sylius.currency_importer.open_exchange_rates: EDITME
sylius.locale: en_US

没有任何作用..

更新

通过将我的配置更改为:

framework:
    #esi:             ~
    translator:      { fallback: %sylius.locale% }
    secret:          "%secret%"
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection: ~
    validation:      { enable_annotations: true }
    templating:
        engines: ['twig']
        #assets_version: SomeVersionScheme
    default_locale:  "%sylius.locale%"

parameters:
    sylius.locale: 'en'

#sylius_locale:
#    driver: doctrine/orm

sylius_translation:
    default_locale: %sylius.locale%

我仍然遇到同样的错误。我清除了缓存。

【问题讨论】:

    标签: symfony sylius


    【解决方案1】:

    试试%sylius.locale%。看起来您只是没有在配置文件中输入参数的全名。

    如果您更新了值但它不起作用,请确保清除缓存。

    $ app/console cache/clear --env=dev
    $ app/console cache/clear --env=prod
    

    你还需要这样的东西:

    imports:
    - { resource: parameters.yml }
    

    否则你输入的参数将不会加载到配置文件中。

    【讨论】:

    • 不要将此作为答案的一部分,但您也可以将其用作参考:github.com/ZKFAdAstra/shop/blob/…
    • 如果您在问题中发布的配置是您现在所拥有的,那就错了。你使用的%locale%不存在,你需要使用%sylius.locale%
    • 我收到循环错误:检测到参数“sylius.locale”(“sylius.locale”>“sylius.locale”)的循环引用.. PS我正在导入参数文件
    • 如果您在 config.yml 和 parameters.yml 中都包含该参数,那么也许这就是原因,它应该只包含在其中一个中。
    • @Dominykas55 你终于找到解决办法了吗?
    猜你喜欢
    • 2016-09-07
    • 2020-04-05
    • 2018-06-13
    • 1970-01-01
    • 2017-11-01
    • 2014-09-14
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多