在 Sylius (Symfony3) 上创建自定义资源表单:"Expected scalar, but got array"

Create a custom resource form on Sylius (Symfony3) : "Expected scalar, but got array"

我尝试使用 Sylius doc 为我的 Sylius 资源 "article" 创建自定义表单。在不创建自定义表单的情况下,一切正常,但是如果我想创建自定义表单,则会出现此错误 "Invalid type for path "sylius_resource.resources.blog.article.classes.form". Expected scalar, but got array."

这是我的文章类型class:

<?php

namespace BlogAdminBundle\Form\Type;

use Symfony\Component\Form\FormBuilderInterface;
use Sylius\Bundle\ResourceBundle\Form\Type\AbstractResourceType;

class ArticleType extends AbstractResourceType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // Build your custom form!
        $builder->add('id', HiddenType::class)
            ->add('titre', TextType::class)
            ->add('date', DateType::class, array('html5' => true))
            ->add('contenu', CKEditorType::class)
            ->add('tags', TextType::class)
            ->add('resume', TextareaType::class)
            ->add('save', SubmitType::class, array('label' => 'Enregistrer l\'article'));
    }

    public function getName()
    {
        return 'admin_article';
    }
}

以及我的资源声明:

sylius_resource:
    resources:
        blog.article:
            driver: doctrine/orm
            classes:
                model: BlogBundle\Entity\Article
                form:
                    default: BlogAdminBundle\Form\Type\ArticleType

有人知道问题出在哪里吗?

谢谢大家!

您必须将您的表单注册为 form.type 服务。你必须发送你的形式的参数 class。你应该这样做:

services:
    app.form.type.article:
        class: BlogAdminBundle\Form\Type\ArticleType
        arguments: [BlogBundle\Entity\Article]
        tags:
            - { name: form.type }

您可以使用以下命令检查您的文章使用了哪些 classes: php bin/console debug:container | grep article