在Sylius(Symfony3)上创建自定义资源表单:“预期标量,但得到数组”

时间:2017-01-10 10:58:20

标签: forms symfony sylius

我尝试使用Sylius doc为我的Sylius资源“文章”创建自定义表单。如果不创建自定义表单,一切都运行良好,但如果我想制作自定义表单,则会出现此错误"Invalid type for path "sylius_resource.resources.blog.article.classes.form". Expected scalar, but got array."

这是我的ArticleType类:

<?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

有谁知道这是什么问题?

谢谢大家!

1 个答案:

答案 0 :(得分:4)

您必须将表单注册为form.type服务。你必须发送你的表格类的论点。你应该这样做:

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

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