- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试扩展 FOS UserBundle 以允许扩展配置文件实体保存除基本 UserBundle 字段之外的其他信息。因为我在站点上有多种类型的用户,所以我创建了单独的实体来保存个人资料信息。我将实体设置如下:
class UserProfile
{
/**
* @var integer
*/
private $id;
/**
* @var integer
*/
private $userId;
/**
* @var string
*/
private $phone;
/**
* @var string
*/
private $language;
/**
* @var string
*/
private $company;
/**
* @var string
*/
private $salutation;
/**
* @var string
*/
private $fax;
/**
* @var string
*/
private $region;
我的配置
type: entity
table: user_profile
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
phone:
type: string
length: '15'
language:
type: string
length: '50'
company:
type: string
length: 255
salutation:
type: string
length: '5'
fax:
type: string
length: '15'
region:
type: string
length: 255
oneToOne:
userId:
targetEntity: User
joinColumn:
name: user_id
referencedColumnName: id
lifecycleCallbacks: { }
我有其他几种用户类型,这些用户类型具有截然不同的更具体信息,因此我需要单独的实体,例如我可能有一个具有 3 个地址或员工 ID 等的用户。鉴于此,我应该如何实现在创建 UserBundle 信息时创建用户个人资料信息的注册表单?提前致谢!
最佳答案
如果您使用 MySQL 和 php 来定义您的实体,那么您必须按如下方式创建您的实体:
<?php
// src/Acme/UserBundle/Entity/UserProfile.php
namespace Acme\UserBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="user_profile")
*/
class UserProfile extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*/
private $phone;
/**
* @var string
*/
private $language;
//....................
//Add all your properties here
public function __construct()
{
parent::__construct();
// your own logic
}
}
第二步是创建表单类型,询问您想要的字段:
// src/Acme/UserBundle/Form/Type/RegistrationFormType.php
<?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('phone');
$builder->add('language');
//...............
//Add all your properties here with $builder->add('property name')
}
public function getName()
{
return 'acme_user_registration';
}
}
现在您需要让 bundle 知道您想要使用您的自定义表单:
# 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 }
最后一步是告诉 FOSUserBundle 它将使用您的表单类型而不是默认表单类型:
# app/config/config.yml
fos_user:
# ...
registration:
form:
type: acme_user_registration
来源:
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#step-3-create-your-user-class
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md
关于php - 将扩展配置文件实体添加到 FOS UserBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968969/
我将 FOS UserBundle 与 Sonata Admin/UserBundle 一起使用,我不想显示 FOSUserBundle 用户配置文件信息。 我可以访问 localhost/MyWeb
我回来了关于我的 UserBundle 的另一个问题: 通过 Symfony2 安装和配置 FOS 包时,一切都很完美,它甚至让我创建了 2 个正确插入到我的数据库中的用户。 但是,每次我尝试登录这些
这是我第一次自己使用 Symfony2,我想我在配置 FOS User Bundle 时犯了一个错误。看起来我的用户实体没有正确扩展 FOS\UserBundle\Entity\User。 这是我的
我正在尝试扩展 FOS UserBundle 以允许扩展配置文件实体保存除基本 UserBundle 字段之外的其他信息。因为我在站点上有多种类型的用户,所以我创建了单独的实体来保存个人资料信息。我将
我是 FriendsOfSymfony UserBundle 的新手,一切都很顺利,直到我尝试让用户注销。登录工作完美,我正在使用我在许多站点上看到的基本配置。我只有 2 个用户需要登录。当用户单击注
我正在尝试创建一个 Controller ,我可以在其中编辑用户的角色(仅此而已,仅此而已),但我陷入了困境。 我创建了一个表单类型: public function buildForm(FormBu
我想覆盖 FOS Userbundle 的默认注册表单并向密码输入添加自定义类。因此,我将 register.html.twig 和 register_content.html.twig 复制到适当的
大家好,我在做一个 symfony2 和 mongodb 项目..我最近安装了 Fos UserBundle,我需要自定义登录策略:事实上,我希望用户只输入一个 pin 码来连接到我的Web 应用程序
我已经安装了 FOSUserBundle我想将 url 自定义为 /account/login、/account/register、/account/logout 而不是 /登录, /register
我正在尝试从 FOS 为 symfony 2 设置 UserBundle。创建新用户时,出现未配置编码器的异常。 如果我像这样设置编码器: fos_user: db_driver: orm
我正在尝试使用 AJAX 注册用户。 我在 FOSUserEvents::REGISTRATION_SUCCESS 上创建了一个事件监听器 所以我想知道是否已经发出了 AJAX 请求,但我的客户端的响
我们目前使用 Symfony 2 和 FOS/UserBundle 进行用户身份验证。 我想在不登录的情况下检查给定的用户名/密码组合是否有效。这是因为另一个人当前已登录,但例如需要执行特定操作,而该
我正在使用 Symfony2 构建一个站点,它将是一个白标签类型的站点,其中多个域映射到同一服务器。因此,coolsite.customer1.com 和 aservice.customer2.com
我遇到了错误 Call to undefined function FOS\UserBundle\Util\mb_convert_case() app_path/vendor/bundles/FOS/
在我的 Symfony2 应用程序中,我收到一个错误: Fatal error: Call to undefined function FOS\UserBundle\Util\mb_convert_c
我正在使用 FOS User Bundle 来管理对我的应用程序的访问。因为我需要一个群体概念,所以我已经按照文档 group 中的描述实现了我需要的东西. 创建用户和组时一切正常,但是当我以用户身份
我正在尝试通过 facebook 或 symfony2 上的 userbundle 验证我的用户 这是我到目前为止所做的(虽然不是我想要的,但它确实有效): firewalls: main:
全新安装 symfony 4.4,然后是 symfony flex 和一些常见配方,然后我试图设置 fos userbundle,我遇到了这个问题,我无法解决。 Argument 3 passed t
(在 Windows 10 上使用 WampServer。) 我按照官方文档在 Symfony 上安装 Sonata User Bundle。 我收到以下错误消息 (1/1) ClassNotFoun
我正在为我的 User 实体创建自定义实体提供程序。但是当我在登录表单中输入用户名和密码时,我得到了这个异常: There is no user provider for user "Ibw\User
我是一名优秀的程序员,十分优秀!