路径“sylius_cart.resources.cart.classes.form”的类型无效.预期的数组,但得到字符


Invalid type for path "sylius_cart.resources.cart.classes.form". Expected array, but got string symfony 2.8.3 sylius 0.17.0

这是一个

非常明确的错误消息,但由于某些原因,我一直无法理解它。

配置 :

sylius_cart:
# The driver used for persistence layer.
driver: ~
# Service id of cart item resolver.
resolver: app.cart_item_resolver
# Cart provider service id.
provider: sylius.cart_provider.default
# The id of cart storage for default provider.
storage: sylius.cart_storage.session
resources:
    cart:
        classes:
            controller: Sylius'Bundle'CartBundle'Controller'CartController
            form:       Sylius'Bundle'CartBundle'Form'Type'CartType
        validation_groups:
            default: [ sylius ]
    cart_item:
        classes:
            controller: Sylius'Bundle'CartBundle'Controller'CartItemController
            form:       Sylius'Bundle'CartBundle'Form'Type'CartItemType
        validation_groups:
            default: [ sylius ]

当我跑步时

$ PHP 应用程序/控制台原则:模式:更新 --强制

我收到错误:

[Symfony''Component''Config''Definition''Exception''InvalidTypeException] 路径"sylius_cart.resources.cart.classes.form"的类型无效。预期的数组,但得到字符串

正如您在Configuration中看到的,sylius_cart.resources.cart.classes.form需要一个具有单个键的数组 default

->arrayNode('form')
    ->addDefaultsIfNotSet()
    ->children()
        ->scalarNode('default')->defaultValue(CartType::class)->cannotBeEmpty()->end()
    ->end()
->end()

您需要将配置更改为

//...
resources:
    cart:
        classes:
            controller: Sylius'Bundle'CartBundle'Controller'CartController
            form:
                default: Sylius'Bundle'CartBundle'Form'Type'CartType
        validation_groups:
            default: [ sylius ]
    cart_item:
        classes:
            controller: Sylius'Bundle'CartBundle'Controller'CartItemController
            form:
                default: Sylius'Bundle'CartBundle'Form'Type'CartItemType
        validation_groups:
            default: [ sylius ]