编写器更新后表单出错

时间:2017-06-29 10:54:46

标签: silex

使用作曲家更新后,我的表单上出现此问题。

[2017-06-26 10:35:26] MicroCMS.CRITICAL: Symfony\Component\Form\Exception\UnexpectedTypeException: Expected argument of type "string", "MicroCMS\Form\Type\NewsletterType" given (uncaught exception) at S:\wamp\www\silex\vendor\symfony\form\FormFactory.php line 55 {"exception":"[object] (Symfony\\Component\\Form\\Exception\\UnexpectedTypeException(code: 0): Expected argument of type \"string\", \"MicroCMS\\Form\\Type\\NewsletterType\" given at S:\\wamp\\www\\silex\\vendor\\symfony\\form\\FormFactory.php:55)"} []

他问我一个字符串,而它是一个他需要的对象。

我把表格的代码,我和所有人都有同样的问题:

<?php

namespace MicroCMS\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Validator\Constraints as Assert;

class NewsletterType extends AbstractType
{

public function buildForm(FormBuilderInterface $builder, array $options)     {
    $builder->add('email', EmailType::class, [
        'label'       => '',
        'required'    => true,
        'attr'        => ['autocomplete' => 'off'],
        'constraints' => new Assert\Email(['checkMX' => true]),
    ]);
}

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

}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您传递了FormType个对象而不是FormType类名。找到创建此表单的代码并将其更改为:

$app['form.factory']->create(\MicroCMS\Form\Type\NewsletterType::class