`
linleizi
  • 浏览: 230646 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Symfony2 FOSUserBundle重写Form

 
阅读更多

默认的form包含注册用户,修改用户信息,修改密码等等,如果想对User追加属性,或者追加追加一部分功能,那就需要重写form。

 

  •  创建如下的ORM User类,追加属性name
<?php
// src/Acme/UserBundle/Entity/User.php

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $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.", groups={"Registration", "Profile"})
     * @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
     */
    protected $name;

    // ...
}

* 默认情况下,新用户注册时会调用注册验证配置文件,如果需要对name属性做验证,请确保验证文件已经加入name属性。

 

  • 例如追加name属性,可以进行下边修改
    <?php
    // src/Acme/UserBundle/Form/Type/RegistrationFormType.php
    
    namespace Acme\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 'acme_user_registration';
        }
    }
     
  • 修改service.yml配置文件
    # src/Acme/UserBundle/Resources/config/services.yml
    services:
        acme_user.registration.form.type:
            class: Acme\UserBundle\Form\Type\RegistrationFormType
            arguments: [%fos_user.model.user.class%]
            tags:
                - { name: form.type, alias: acme_user_registration }
     
  • 修改config.yml配置文件
    # app/config/config.yml
    fos_user:
        # ...
        registration:
            form:
                type: acme_user_registration
     
分享到:
评论

相关推荐

    symfony-console-form, 为控制台命令输入使用Symfony窗体.zip

    symfony-console-form, 为控制台命令输入使用Symfony窗体 控制台窗体By Noback 这个包包含一个Symfony包和一些工具,允许你使用Symfony表单类型来定义和交互处理来自的用户输入。安装composer require ...

    Symfony2-FOSUserBundle:带有 FOSUserBundle 的 Symfony2 基本应用程序

    在本项目中,"Symfony2-FOSUserBundle" 是一个基于 Symfony2 v2.1.7 的基础应用,已经预装并配置好了 FOSUserBundle,以便与 MySQL 数据库配合使用。这意味着开发者可以直接使用这个项目模板来快速搭建具备用户管理...

    symfony-console-form:使用Symfony表单进行控制台命令输入

    Symfony控制台表格马蒂亚斯·诺巴克(Matthias ...安装composer require matthiasnoback/symfony-console-form 在Symfony应用程序的内核中启用Matthias\SymfonyConsoleForm\Bundle\SymfonyConsoleFormBundle 。 &lt;?...

    Symfony2入门教程

    ### Symfony2入门教程知识点解析 #### 一、Symfony2简介及快速入门 **知识点1:Symfony2概述** Symfony2是一款先进的PHP框架,旨在提供一种结构化、高效且可扩展的方式来构建Web应用程序。它通过一系列可复用的...

    ayrshireminis:Ayrshire Minis 在 Symfony 2 上重写

    本文将深入探讨如何使用Symfony 2框架重写Ayrshire Minis网站,以及在这个过程中JavaScript的重要性。Symfony 2是一款强大的PHP框架,以其灵活性、可扩展性和高性能著称,而JavaScript作为前端的主要语言,对于构建...

    Symfony2 Jobeet Day 2_ The Project PDF

    总结来说,Symfony2 Jobeet项目不仅展示了Symfony2框架如何用于构建复杂的Web应用程序,还提供了一个实际的案例,让开发者能够深入了解如何利用该框架的各个方面来创建一个功能丰富的在线工作板。通过这个项目,...

    symfony2常规操作

    **Symfony2框架基础** Symfony2是一款强大的PHP框架,它提供了高度可重用的组件和一套完整的Web应用开发体系。在本篇文章中,我们将探讨在Symfony2框架中进行的一些常规操作,包括依赖注入、 Doctrine数据库操作、...

    symfony2建立一个完整blog的例子

    **Symfony2 框架构建博客系统详解** Symfony2 是一款强大的PHP开发框架,它以其模块化、灵活性和高效性能而备受开发者喜爱。在 Symfony2 中构建博客系统可以帮助初学者理解MVC(Model-View-Controller)架构以及该...

    精通PHP Symfony2

    《精通PHP Symfony2》是一本深入介绍Symfony2框架的书籍。Symfony2被描述为最牛叉的PHP框架,甚至可以称之为没有之一的框架,是PHP开发者必备的参考书籍。 Symfony2是一个以加速Web应用开发和构建更健壮的应用为...

    symfony-jsonapi, 用于 Symfony 2和 Symfony 3的JSON API变压器包.zip

    symfony-jsonapi, 用于 Symfony 2和 Symfony 3的JSON API变压器包 Symfony json对于 Symfony 2和 Symfony 3 安装工具使用情况创建映射输出API响应JSON API请求JSON API响应与NelmioApiDocBund

    Form:对Symfony2的Form组件的补充

    在Symfony2(现在已更新到Symfony4和5)中,Form组件是核心组件之一,它允许开发者以声明式的方式创建、验证和渲染表单。以下是关于Symfony2 Form组件的详细解释: 1. **表单创建**:开发者可以通过定义一个实体类...

    Symfony quick tour 2.1

    例如,“第1章:全景图”通过介绍Symfony2背后的一些最重要的概念和展示一个简单项目的实践,让读者快速入门。如果读者之前使用过其他的网络框架,那么在Symfony2中的感觉应该是很自然的。对于新手,这将是一个全新...

    symfony2创建实体命令

    symfony2创建实体命令 四步骤

    Symfony2 常用命令和基本使用方法

    Symfony2 常用命令和基本使用方法,简单的说明,和实例。

    《Symfony权威指南》

    在本书里,你将了解如何使用symfony建立Web应用程序。本书分成五篇:“基础知识”篇,包含所有的基本概念和开始symfony的基本知识;“核心架构”篇,讲述模型视图控制器(MVC)在symfony中的实现,以及如何用这样的...

    Symfony

    **Symfony** Symfony是一款开源的PHP框架,用于构建高质量的、可维护的Web应用程序。它遵循MVC(模型-视图-控制器)架构模式,提供了一套强大的工具来简化Web开发过程,包括路由、依赖注入、事件系统、表单处理、...

Global site tag (gtag.js) - Google Analytics