服务“sylius.factory.product”依赖于不存在的服务“sylius.translation.locale_provider”

时间:2016-06-02 17:35:16

标签: symfony doctrine-orm sylius

我正在使用Composer尝试将sylius安装到现有项目中。由于某种原因,确实没有关于如何做到这一点的文档或信息,所以我在这里感觉很黑暗。

我已经完成了“composer require sylius \ product-bundle”。当我把捆绑包放在我的AppKernel中时,我看到了这个错误:

服务“sylius.factory.product”依赖于不存在的服务“sylius.translation.locale_provider”。

Google会返回0个结果。

如果我尝试使用composer需要sylius \ translation-bundle,我会收到更多错误,这些错误无法将非静态方法转换为静态方法。

2 个答案:

答案 0 :(得分:0)

您没有在AppKernel中启用所有必需的捆绑包,因为几乎所有捆绑的Sylius都依赖于SyliusResourceBundle(这是Sylius的翻译服务所在的位置)。我建议您按照安装指南进行操作,并确保按照说明正确配置。请参阅:http://docs.sylius.org/en/latest/bundles/SyliusProductBundle/installation.html

如果您有任何进一步的问题,请告诉我,我会尽力帮助您!

答案 1 :(得分:0)

在config.yml中尝试此操作(感谢pamil

sylius_resource:
    translation:
        enabled: true
        default_locale: "%locale%"

我还需要添加以下配置:

sylius_product: ~

sylius_archetype:
    resources:
        product:
            subject: Sylius\Component\Core\Model\Product
            attribute: Sylius\Component\Product\Model\Attribute
            option: Sylius\Component\Product\Model\Option
            archetype:
                classes:
                    model: Sylius\Component\Product\Model\Archetype

sylius_association:
    resources:
        product:
            subject: %sylius.model.product.class%
            association:
                classes:
                    model: Sylius\Component\Product\Model\ProductAssociation

遇到麻烦时,请使用sylius.yml作为参考。 还要注意sylius bundles need to be registered in specific order - 这很容易被忽视。文档最重视Doctrine是最后一个,但Sylius包的顺序同样重要。

这是我的AppKernel供参考:

$bundles = array(
    new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
    new Symfony\Bundle\SecurityBundle\SecurityBundle(),
    new Symfony\Bundle\TwigBundle\TwigBundle(),
    new Symfony\Bundle\MonologBundle\MonologBundle(),
    new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
    new FOS\RestBundle\FOSRestBundle(),
    new JMS\SerializerBundle\JMSSerializerBundle($this),
    new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
    new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
    new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
    new winzou\Bundle\StateMachineBundle\winzouStateMachineBundle(),
    new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
    new Sylius\Bundle\OmnipayBundle\SyliusOmnipayBundle(),
    new Sylius\Bundle\MoneyBundle\SyliusMoneyBundle(),


    new Sylius\Bundle\OrderBundle\SyliusOrderBundle(),
    new Sylius\Bundle\PricingBundle\SyliusPricingBundle(),
    new Sylius\Bundle\ProductBundle\SyliusProductBundle(),
    new Sylius\Bundle\AssociationBundle\SyliusAssociationBundle(),
    new Sylius\Bundle\ArchetypeBundle\SyliusArchetypeBundle(),

    new Sylius\Bundle\AttributeBundle\SyliusAttributeBundle(),
    new Sylius\Bundle\VariationBundle\SyliusVariationBundle(),
    new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
    new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
    new AppBundle\AppBundle(),
    new FOS\UserBundle\FOSUserBundle(),
);