当前位置:  开发笔记 > 编程语言 > 正文

在Symfony 3.0中给出"string","Vendor\NameBundle\Form\EntitynameType"类型的预期参数

如何解决《在Symfony3.0中给出"string","Vendor\NameBundle\Form\EntitynameType"类型的预期参数》经验,为你挑选了1个好方法。

由于我使用symfony版本2.7(安装项目后立即出现404页面错误)的问题,我开始使用Symfony 3.0版.在一些小问题之后,我发现"app/console"被"bin/console"取代.所以我现在正在开发一个新项目,我已经构建了一个名为1的实体的新bundle

Codeit/RestaurantBundle && CodeitRestaurantBundle:Reserveren

格式注释,实体有一个名为"naam"的id和1字段(字符串,255).我更新了模式,我生成了Codeit的实体,在成功完成之后,我生成了一个带有写操作的crud.格式再次是注释,前缀是/ reserveren.

因此,如果我访问页面web/reserveren,我将获得我的实体的显示页面.不幸的是,如果我尝试添加新条目,我收到以下错误:

给出的类型为"string","Codeit\RestaurantBundle\Form\ReserverenType"的预期参数

我的Bundle/Form/ReserverenType.php

add('naam')
    ;
}

/**
 * @param OptionsResolver $resolver
 */
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'Codeit\RestaurantBundle\Entity\Reserveren'
    ));
}
}

我的实体代码

id;
    }

    /**
     * Set naam
     *
     * @param string $naam
     *
     * @return Reserveren
     */
    public function setNaam($naam)
    {
        $this->naam = $naam;

        return $this;
    }

    /**
     * Get naam
     *
     * @return string
     */
    public function getNaam()
    {
        return $this->naam;
    }


}

Cerad.. 27

表格在3.0中发生了很大变化.你现在可能最好坚持使用2.8.

您没有显示它,但我怀疑,根据错误消息,您的控制器代码如下所示:

$form = $this->createForm(new ReservernType(), $item);

这是2.x的做事方式.3.x使用:

$form = $this->createForm(ReservernType::class, $item);

http://symfony.com/doc/current/book/forms.html#creating-form-classes



1> Cerad..:

表格在3.0中发生了很大变化.你现在可能最好坚持使用2.8.

您没有显示它,但我怀疑,根据错误消息,您的控制器代码如下所示:

$form = $this->createForm(new ReservernType(), $item);

这是2.x的做事方式.3.x使用:

$form = $this->createForm(ReservernType::class, $item);

http://symfony.com/doc/current/book/forms.html#creating-form-classes


将3.x用于新项目没有错.请注意,相当多的S2信息不再适用.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有