symfony格式的问题

symfony格式的问题,symfony,doctrine-orm,Symfony,Doctrine Orm,我有以下路线: blog_show: path: /test/123 defaults: { _controller: TotalcanBravofillBundle:Test:test } 该控制器: public function testAction() { $form = $this->createForm(new TestType(), new Test()); return $this->re

我有以下路线:

blog_show:
    path:      /test/123
    defaults:  { _controller: TotalcanBravofillBundle:Test:test }
该控制器:

    public function testAction()
    {
        $form = $this->createForm(new TestType(), new Test());

        return $this->render('TotalcanBravofillBundle:Test:test.html.twig', array(
            'form' => $form->createView(),
       ));
    }
我有这个实体:

...
class Test
{
/**
     * @var string
     *
     * @ORM\Column(name="txt", type="text")
     */
    private $txt;
...
此表格:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('int')
            ->add('txt')
        ;
    }
我有这样的看法:

{% extends "TotalcanBravofillBundle::index.html.twig" %}

{% block content %}
    {{ form_errors(form) }}
    {{ form_widget(form) }}
{% endblock %}
它不起作用;我得到以下错误:

Could not load type "text"
500 Internal Server Error - InvalidArgumentException
我做错了什么

堆栈跟踪:

at FormRegistry ->getType ('text') 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php at line 82   + 
at FormFactory ->createNamedBuilder ('txt', 'text', null, array('required' => true)) 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php at line 126   + 
at FormFactory ->createBuilderForProperty ('Totalcan\BravofillBundle\Entity\Test', 'txt', null, array()) 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 109   + 
at FormBuilder ->create ('txt', null, array()) 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 270   + 
at FormBuilder ->resolveChildren () 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php at line 218   + 
at FormBuilder ->getForm () 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php at line 39   + 
at FormFactory ->create (object(TestType), object(Test), array()) 
in /var/www/total1/data/bravofill/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php at line 163   + 
at Controller ->createForm (object(TestType), object(Test)) 
in /var/www/total1/data/bravofill/src/Totalcan/BravofillBundle/Controller/TestController.php at line 14   + 
at TestController ->testAction () 
at call_user_func_array (array(object(TestController), 'testAction'), array()) 
in kernel.root_dir/bootstrap.php.cache at line 2774   + 
at HttpKernel ->handleRaw (object(Request), '1') 
in kernel.root_dir/bootstrap.php.cache at line 2748   + 
at HttpKernel ->handle (object(Request), '1', true) 
in kernel.root_dir/bootstrap.php.cache at line 2878   + 
at ContainerAwareHttpKernel ->handle (object(Request), '1', true) 
in kernel.root_dir/bootstrap.php.cache at line 2179   + 
at Kernel ->handle (object(Request)) 
in /var/www/total1/data/bravofill/web/app_dev.php at line 28   + 
调试:

form.type.birthday   birthday   container Symfony\Component\Form\Extension\Core\Type\BirthdayType
form.type.button     button     container Symfony\Component\Form\Extension\Core\Type\ButtonType
form.type.checkbox   checkbox   container Symfony\Component\Form\Extension\Core\Type\CheckboxType
form.type.choice     choice     container Symfony\Component\Form\Extension\Core\Type\ChoiceType
form.type.collection collection container Symfony\Component\Form\Extension\Core\Type\CollectionType
form.type.country    country    container Symfony\Component\Form\Extension\Core\Type\CountryType
form.type.currency   currency   container Symfony\Component\Form\Extension\Core\Type\CurrencyType
form.type.date       date       container Symfony\Component\Form\Extension\Core\Type\DateType
form.type.datetime   datetime   container Symfony\Component\Form\Extension\Core\Type\DateTimeType
form.type.email      email      container Symfony\Component\Form\Extension\Core\Type\EmailType
form.type.entity     entity     container Symfony\Bridge\Doctrine\Form\Type\EntityType
form.type.file       file       container Symfony\Component\Form\Extension\Core\Type\FileType
form.type.form       form       container Symfony\Component\Form\Extension\Core\Type\FormType
form.type.hidden     hidden     container Symfony\Component\Form\Extension\Core\Type\HiddenType
form.type.integer    integer    container Symfony\Component\Form\Extension\Core\Type\IntegerType
form.type.language   language   container Symfony\Component\Form\Extension\Core\Type\LanguageType
form.type.locale     locale     container Symfony\Component\Form\Extension\Core\Type\LocaleType
form.type.money      money      container Symfony\Component\Form\Extension\Core\Type\MoneyType
form.type.number     number     container Symfony\Component\Form\Extension\Core\Type\NumberType
form.type.password   password   container Symfony\Component\Form\Extension\Core\Type\PasswordType
form.type.percent    percent    container Symfony\Component\Form\Extension\Core\Type\PercentType
form.type.radio      radio      container Symfony\Component\Form\Extension\Core\Type\RadioType
form.type.repeated   repeated   container Symfony\Component\Form\Extension\Core\Type\RepeatedType
form.type.reset      reset      container Symfony\Component\Form\Extension\Core\Type\ResetType
form.type.search     search     container Symfony\Component\Form\Extension\Core\Type\SearchType
form.type.submit     submit     container Symfony\Component\Form\Extension\Core\Type\SubmitType
form.type.textarea   textarea   container Symfony\Component\Form\Extension\Core\Type\TextareaType
form.type.time       time       container Symfony\Component\Form\Extension\Core\Type\TimeType
form.type.timezone   timezone   container Symfony\Component\Form\Extension\Core\Type\TimezoneType
form.type.url        url        container Symfony\Component\Form\Extension\Core\Type\UrlType
我明白了

services:
  form.type.anchor:
          class: Totalcan\BravofillBundle\Form\AnchorType
          arguments: ["@security.context"]
  form.type.user:
          class: Totalcan\BravofillBundle\Form\UserType
          arguments: ["@security.context"]

            vvvv---- here, need rename
  form.type.text:
          class: Totalcan\BravofillBundle\Form\TextType
          arguments: ["@security.context"]

构建表单时,您没有声明实体到字段的任何映射:

这应该起作用:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('int', 'int')
        ->add('txt', 'text')
    ;
}

我强烈建议不要重命名Symfony2字段映射-每次升级Symfony时,您的代码都会中断。

text
是没有最大长度的字符串-我怀疑这是问题所在。整数有效,字符串和文本无效。表单很麻烦,当我硬编码字段类型:->add('txt','integer')时,它就可以工作了!您能否提供
app/console container:debug--show private--tag=form.type
?我之前已经要求您使用硬编码的
->add(“txt”,“textarea”)
进行测试,但您说这会引发相同的异常。。。显然,
form.type.text
似乎不存在<代码>文本区域应该可以工作-请重新验证!现在,来自@NicolaiFröhlich的命令使用的是debug:container,而不是
container:debug
.mkay您已经覆盖了表单类型,这正是我所期望的:D