大佬教程收集整理的这篇文章主要介绍了symfony – FOSUser Bundle ..重写表单类型时无法加载类型“X”错误,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
无法加载“sam_user_registration”类型
// src / Sam / Bundle / UserBundle / Entity / User.php
namespace Sam\Bundle\UserBundle\Entity; use Doctrine\ORM\Mapping as ORM; use FOS\UserBundle\Entity\User as BaseUser; use Symfony\Component\Validator\ConsTraints as Assert; /** * @ORM\Entity * @ORM\Table(name="sam_user") */ class User extends BaseUser { /** * @var String $id * * @ORM\Id * @ORM\column(name="id",type="Integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * Get id * * @return String $id */ public function getId() { return $this->id; } /** * @ORM\column(type="String",length=255) * * @Assert\NotBlank(message="Please enter your name.",groups={"Registration","Profile"}) * @Assert\MinLength(limit="3",message="The name is too short.","Profile"}) * @Assert\MaxLength(limit="255",message="The name is too long.","Profile"}) */ protected $name;
// src / Sam / Bundle / UserBundle / Form / Type / RegistrationFormType.php
<?php namespace Sam\Bundle\UserBundle\Form\Type; use Symfony\Component\Form\FormBuilderInterface; use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType; class RegistrationFormType extends BaseType { public function buildForm(FormBuilderInterface $builder,array $options) { parent::buildForm($builder,$options); // add your custom field $builder->add('name'); } public function getName() { return 'sam_user_registration'; } }
** src / Sam / Bundle / UserBundle / resources / config / services.xml **
<container xmlns="http://symfony.com/scheR_61_11845@a/Dic/services" xmlns:xsi="http://www.w3.org/2001/XMLscheR_61_11845@a-instance" xsi:scheR_61_11845@aLOCATIOn="http://symfony.com/scheR_61_11845@a/Dic/services http://symfony.com/scheR_61_11845@a/Dic/services/services-1.0.xsd"> <service id="sam_user.registration.form.type" class="Sam\Bundle\UserBundle\Form\Type\RegistrationFormType"> <tag name="form.type" alias="sam_user_registration" /> <argument>%fos_user.model.user.class%</argument> </service> </container>
#app / config / config.yml
fos_user: db_driver: orm # other valid values are 'mongodb','couchdb' and 'propel' firewall_name: main #user_class: Sam\Bundle\UserBundle\Document\User user_class: Sam\Bundle\UserBundle\Entity\User group: group_class: Sam\Bundle\UserBundle\Entity\Group profile: # Authentication Form form: type: fos_user_profile name: fos_user_profile_form validation_groups: [Authentication] registration: form: type: sam_user_registration
public function __construct() { parent::__construct(); //your code }
其次,您不需要覆盖表单类型.由于您已将名称字段添加到您的实体,因此它将自动通过您的表单提供
{{ form_widget(myForm.Name)} }
但是,您确定在config.yml中导入了services.xml吗?为什么要混合使用Xml和yml?坚持一个.
imports: - { resource: @SamBundleUserBundle/resources/config/services.yml }
在评论中,Patt指出了我们的overriding registration FOSUserBundle Symfony2
以上是大佬教程为你收集整理的symfony – FOSUser Bundle ..重写表单类型时无法加载类型“X”错误全部内容,希望文章能够帮你解决symfony – FOSUser Bundle ..重写表单类型时无法加载类型“X”错误所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。