2015-02-25 4 views
3

Я пытаюсь интегрировать пакет Sylius Product Bundle в свой существующий проект Symfony. У него уже настроена доктрина.Конфигурация набора продуктов Sylius

Это ошибка я получаю:

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException] 
    The child node "driver" at path "sylius_attribute" must be configured. 

Любая идея, что причиной этого? Я следовал инструкциям с места в карьер без каких-либо других установок силиуса.

http://docs.sylius.org/en/latest/bundles/SyliusProductBundle/installation.html

я должен был изменить версию доктрины-расслоение в моем файле composer.json, чтобы позволить

composer require "sylius/product-bundle"

успешно работать без ошибок. . Я изменил версию от 1,2 * до

"doctrine/doctrine-bundle": "1.3.*"

Также после композитор установил эти ребята, я добавил следующее к моему config.yml файл

sylius_product: 
    driver: doctrine/orm 
    classes: 
     product: 
      model: Sylius\Bundle\CoreBundle\Model\Product 
      controller: Sylius\Bundle\CoreBundle\Controller\ProductController 
      repository: Sylius\Bundle\CoreBundle\Repository\ProductRepository 

stof_doctrine_extensions: 
    default_locale: es_us 
    translation_fallback: true 
    orm: 
     default: 
      tree: true 

Изначально я получал следующую ошибку:

[Exception]                       
    Missing parameter sylius.translation.default.mapping. Default translation mapping must be defined! 

После небольшого поиска вокруг я добавил кусок ниже в config.yml файл

sylius_translation: 
    default_mapping: 
     translatable: 
      field: translations 
      currentLocale: currentLocale 
      fallbackLocale: fallbackLocale 
     translation: 
      field: translatable 
      locale: locale 

Уже существовавшие ранее в моем файле config.yml был:

doctrine: 
    dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8  
    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 

Я ничего в этих настройках не изменится.

Что я делаю неправильно здесь или отсутствует? Любая помощь будет оценена.

Спасибо!


EDIT


Я пытался добавить все следующие пункты:

sylius_attribute: 
    driver: doctrine/orm 
sylius_variation: 
    driver: doctrine/orm 
sylius_archetype: 
    driver: doctrine/orm 

Теперь я получаю следующее сообщение об ошибке:

[InvalidArgumentException]          
    The class sylius.model.product_archetype.class does not exist. 

Я добавил соответствующий файл AppKernel, которому все еще не повезло!

new Sylius\Bundle\AttributeBundle\SyliusArchetypeBundle(), 

, а затем изменил его:

new Sylius\Bundle\ArchetypeBundle\SyliusArchetypeBundle(), 

Настройки Sylius была тиха стрессовой до сих пор :(

ответ

1

Это не говоря уже о руководстве вы следовали, но я думаю, что это будет поможет вам:

https://github.com/Sylius/Sylius-Docs/blob/master/bundles/SyliusAttributeBundle/installation.rst#container-configuration

+1

спасибо @henrily. Я ценю помощь. Я все еще сталкивался с несколькими проблемами. Пожалуйста, взгляните на редактирование в моем вопросе. – softie

+0

Я разработал ArchetypeBundle и изначально модифицировал ProductBundle, чтобы автоматически настраивать артетипы продукта в контейнере, но впоследствии был удален и документы не обновлены. Я обновлю документы, чтобы это не стало проблемой. :) Приветствия! –

3

Я updated the docs для ProductBundle:

В composer.json вам необходимо добавить следующие строки:

"require": { 
    ... 
    "sylius/locale-bundle": "0.13.*", 
    "sylius/product-bundle": "0.13.*" 
    ... 
} 

In app/AppKernel.php:

 new FOS\RestBundle\FOSRestBundle(), 
     new JMS\SerializerBundle\JMSSerializerBundle($this), 
     new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), 
     new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(), 

     new Sylius\Bundle\ArchetypeBundle\SyliusArchetypeBundle(), 
     new Sylius\Bundle\AttributeBundle\SyliusAttributeBundle(), 
     new Sylius\Bundle\ProductBundle\SyliusProductBundle(), 
     new Sylius\Bundle\LocaleBundle\SyliusLocaleBundle(), 
     new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(), 
     new Sylius\Bundle\TranslationBundle\SyliusTranslationBundle(), 
     new Sylius\Bundle\VariationBundle\SyliusVariationBundle(), 

     new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 

В config.yml:

parameters: 
    sylius.locale: "%locale%" 

sylius_archetype: 
    classes: 
     product: 
      subject: Sylius\Component\Product\Model\Product 
      attribute: Sylius\Component\Product\Model\Attribute 
      option: Sylius\Component\Product\Model\Option 
      archetype: 
       model: Sylius\Component\Product\Model\Archetype 
       repository: Sylius\Bundle\ResourceBundle\Doctrine\ORM\TranslatableEntityRepository 
       translatable: 
        targetEntity: Sylius\Component\Product\Model\ArchetypeTranslation 
      archetype_translation: 
       model: Sylius\Component\Product\Model\ArchetypeTranslation 

sylius_attribute: 
    driver: doctrine/orm 

sylius_product: 
    driver: doctrine/orm 

sylius_locale: 
    driver: doctrine/orm 

sylius_translation: 
    default_mapping: 
     translatable: 
      field: translations 
      currentLocale: currentLocale 
      fallbackLocale: fallbackLocale 
     translation: 
      field: translatable 
      locale: locale 

sylius_variation: 
    driver: doctrine/orm 

stof_doctrine_extensions: 
    orm: 
     default: 
      sluggable: true 
      timestampable: true 

Теперь вы должны быть в состоянии запустить схему обновление успешно

$ php app/console doctrine:schema:update --dump-sql 

Если удовлетворены, выполните:

$ php app/console doctrine:schema:update --force 

Update: Эта конфигурация сломается при обновлении до 0,14 (текущая выпущена версия 0.13).

+0

Настройка работает, но после этого говорится, что сервис sylius.factory.product не существует. Помоги пожалуйста! –

+0

@krvajal Интересно, какую версию вы используете? –

+0

Я использую версию 1.3, как в ответе, может быть, я забыл что-то настроить? Также версия Symfony - 2.8. Cheers –

Смежные вопросы