标签: fosuserbundle

FOSUserBundle将更改密码表单与其他表单集成在一起

我想在我的设置页面中集成FOSUserBundle的change_password表单,我还有change_email表单或其他信息.我知道如何在我的设计中集成FOS而不是如何做我正在尝试做的事情.

现在,表单是通过控制器和表单生成器方法生成的,我不知道如何修改它...

在此先感谢,Valentin

php symfony fosuserbundle

1
推荐指数
1
解决办法
5533
查看次数

Symfony:覆盖 FOSUserBundle 重置控制器

我正在尝试覆盖 FOSUserBundle 的重置控制器。我自己的 UserBundle 正在覆盖整个包,它对例如模板工作正常,但这是我第一次尝试覆盖控制器,似乎我做错了什么。

以这种方式尝试(仅在第一行中复制,因为控制器的其余部分仍然是默认的):

namespace UserBundle\Controller\User;

use FOS\UserBundle\Controller\ResettingController as BaseController;
...


class ResettingController extends BaseController{
...
Run Code Online (Sandbox Code Playgroud)

“重置密码”按钮位于我的登录页面上。

我想要实现的是checkEmailAction 的一些自定义。我想检查请求重置密码的人是否是“锁定”用户,并为每个请求发送正确的“响应消息”。控制器的其余部分可以保持不变。我添加了一些转储和一个“死”;进入代码检查是否有任何输出,但没有。

我最好从哪里开始寻找?根据文档https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html我不应该比我已经做的更多。

overriding controller reset-password symfony fosuserbundle

1
推荐指数
1
解决办法
2921
查看次数

从 Symfony 中的表单类型访问用户实体

我正在尝试在 Symfony 中构建多租户支持,为此我group_id在我的用户中创建了一个列,最重要的是,所有实体也都有这个相同的列。这样用户只能访问其组的数据。

我已经成功地通过数据访问和显示解决了整个问题,但随后出现了EntityTypesSymfony Forms 的挑战。

问题基本上是,如何EntityType仅显示该特定组输入的数据。按group_id用户和联系人所拥有的进行排序。传递此信息以便用户只能访问其数据的最佳方法是什么?

<?php 

namespace ContactBundle\Form; 

use ContactBundle\Entity\Contact; 
use ContactBundle\Entity\Organization;
use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolver; 
use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 

class ContactType extends AbstractType 
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder 
        ->add('first_name', TextType::Class, [
            'attr' => ['class'=>'u-full-width'],
            'label' => 'First Name',])
        ->add('last_name', TextType::Class, [
            'attr' => ['class'=>'u-full-width'],
            'label'=>'Last Name',
        ])
        ->add('email', TextType::Class, [
            'attr' => ['class'=>'u-full-width'],
            'label'=>'Email Address'
        ])
        ->add('organization_id', EntityType::Class, [ …
Run Code Online (Sandbox Code Playgroud)

php multi-tenant symfony fosuserbundle

1
推荐指数
1
解决办法
3502
查看次数

Symfony2 FOSUserBundle自定义注册字段

我有默认的FOSUserBundle注册表.我想在注册表单中添加"jabber"字段,这是可选的(不需要填写).

用户实体:

protected $jabber;
/**
 * @ORM\Column(type="string", length="100")
 */
Run Code Online (Sandbox Code Playgroud)

但是当我尝试它时,我无法注册填充"jabber"字段.如何填补这个领域?

php symfony fosuserbundle

0
推荐指数
1
解决办法
837
查看次数

致命错误:调用用户的成员函数

我想使用从FOSUserBundle继承的User类的get方法.但我有一个错误:

致命错误:在非对象上调用成员函数getNom().

我的用户类:

<?php
namespace Olr\LoanBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=255)
     *
     */
    protected $nom;

    /**
     * @ORM\Column(type="string", length=255)
     *
     */
    protected $prenom;

    /**
     * @ORM\Column(type="string", length=50)
     *
     */
    protected $adresse;

    /**
     * @ORM\Column(type="string", length=50)
     *
     */
    protected $adresse2;

    /**
     * @ORM\Column(type="string", length=5)
     *
     */
    protected $cp;

    /**
     * @ORM\Column(type="string", length=50)
     * …
Run Code Online (Sandbox Code Playgroud)

php symfony fosuserbundle

0
推荐指数
1
解决办法
1307
查看次数

最佳做法是仅允许访问所有者用户和管理员?

我正在使用FOSUserBundle来管理用户访问,在Symfony2中对网站进行编程。我有一个名为“站点”的实体,可以有许多用户。只有相关用户和管理员才有权访问Site:show操作。

我不知道是否可以security.yml在控制器中执行此操作,或者是否必须直接在控制器中或其他位置执行此操作。推荐的方法是什么?

谢谢。

php security symfony fosuserbundle

0
推荐指数
1
解决办法
694
查看次数

无法从AbstractType类中获取$ this-> generateUrl()

我不能得到$ this-> generateUrl()工作,但它是从我的控制器工作,还是我应该用另一种方式定义'setAction'?

class UserLoginType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->setMethod('POST')
            ->setAction($this->generateUrl('fos_user_security_check'))
            ->add('username', 'text')
            ->add('password', 'password')
            ->add('save', 'submit');
    }

    public function getName()
    {
        return 'user_login';
    }
}
Run Code Online (Sandbox Code Playgroud)

forms routes builder symfony fosuserbundle

0
推荐指数
1
解决办法
1957
查看次数

警告:缺少FOS\UserBundle\Form的参数1

我得到这个警告,似乎无法找到解决方案,我尝试了各种答案,但仍然没有

Warning: Missing argument 1 for FOS\UserBundle\Form\Type\RegistrationFormType::__construct(), called in C:\xampp\htdocs\symfony-bootstrap\src\sava\UserBundle\Controller\VerUsuarioController.php on line 77 and defined in C:\xampp\htdocs\symfony-bootstrap\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Form\Type\RegistrationFormType.php on line 25

Notice: Undefined variable: class in C:\xampp\htdocs\symfony-bootstrap\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Form\Type\RegistrationFormType.php on line 27
Run Code Online (Sandbox Code Playgroud)

我的services.yml

# src/Acme/UserBundle/Resources/config/services.yml
services:
    sava_user.registration.form.type:
        class: sava\UserBundle\Form\RegistroTypes
        arguments: [%fos_user.model.user.class%]
        tags:
            - { name: form.type, alias: sava_user_registration }
Run Code Online (Sandbox Code Playgroud)

这是我的config.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: "@savaUserBundle/Resources/config/services.yml" }
framework:
    #esi:             ~
    translator:      { fallback: %locale% }
    secret:          %secret%
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~ …
Run Code Online (Sandbox Code Playgroud)

php forms symfony fosuserbundle

0
推荐指数
1
解决办法
3065
查看次数

是否有与PHP 5.6兼容的Doctrine 2版本

我有一个使用Doctrine> = 2.2.3,<2.4-dev的Symfony 2.3应用程序.我将生产服务器升级到PHP 5.6,导致FOSUserBundle出现以下错误:

Warning: Erroneous data format for unserializing 'air\cms2Bundle\Entity\User' in /vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php on line 833

Fatal error: __clone method called on non-object in /vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php on line 837
Run Code Online (Sandbox Code Playgroud)

该实体是FOSUserBundle BaseUser的只是一个扩展,如图所示这里.可以在此处找到FOSUserBundle BaseUser类.

在做了一些初步研究之后,我发现错误是由PHP 5.6和Doctrine 2兼容性问题引起的,因为PHP 5.6 中的Serializable发生了变化.Doctrine开发人员已经解决了这个问题(请参阅GitHub pull请求),但是我仍然不确定我需要哪个版本的Doctrine 2 composer.json才能获得修复,而且我也不确定Symfony 2的哪个版本呢兼容.

我目前composer.json:

"require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.3.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.2.*",
        ...
},
Run Code Online (Sandbox Code Playgroud)

更新:

我已将我的composer.json更新为:

"require": {
    "php": ">=5.6.0",
    "symfony/symfony": "2.6.*",
    "doctrine/orm": "~2.5",
    "doctrine/doctrine-bundle": "1.2.*",
    ...
},
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这导致了一个不可恢复的依赖问题: …

symfony doctrine-orm fosuserbundle php-5.6

0
推荐指数
1
解决办法
3990
查看次数

Symfony - FOS UserBundle错误:"通过打开/ register页面尝试从命名空间加载类'User'..."

我想在Symfony中使用Fos UserBundle.

我将其配置为Symfony Doc的"FOSUserBundle入门".

/ Login页面正在工作,但当我打开/ register页面时,我得到错误:

尝试从命名空间"AppBundle\Entity"加载类"User".您是否忘记了"使用"语句,例如"Symfony\Component\Security\Core\User\User","Symfony\Bridge\Doctrine\Tests\Fixtures\User"或"FOS\UserBundle\Model\User"?

500 Internal Server Error - ClassNotFoundException 

Stack Trace

1. in vendor\friendsofsymfony\user-bundle\Model\UserManager.php at line 40  
37.    public function createUser()
38.    {
39.        $class = $this->getClass();
40.        $user = new $class();
41.
42.        return $user;
43.    }

2. at UserManager ->createUser  () 
Run Code Online (Sandbox Code Playgroud)

我已经清除了缓存:

php app/console cache:clear --env=prod --no-warmup
php app/console cache:clear --env=dev --no-warmup
Run Code Online (Sandbox Code Playgroud)

并使作曲家更新,但没有发生.

版本:

  • FOS /用户捆绑:v2.0.0

  • Symfony:v2.8.18

  • PHP:7.1.2

  • Twig:v2.3.0

这是我的用户级:

namespace AppBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * web_user …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

0
推荐指数
1
解决办法
4211
查看次数