标签: pugxmultiuserbundle

如何在成功注册时分配角色?

我正在使用fos用户捆绑和pugx多用户捆绑.我已经阅读了所有文档,我是Symfony的新手.在pugx多用户包中,每个点都有一个样本,但只有一个:成功注册.

  • 用于生成表单的覆盖控制器样本=> ok
  • 用于生成表单的覆盖模板的示例=> ok
  • 覆盖成功注册样本的样本=>没有.

这是我的代码:

class RegistrationController extends BaseController
{
    public function registerAction(Request $request)
    {   
        $response = parent::registerAction($request);
        return $response;
    }   

    public function registerTeacherAction()
    {   
        return $this->container
            ->get('pugx_multi_user.registration_manager')
            ->register('MyBundle\Entity\PersonTeacher');
    }   

    public function registerStudentAction()
    {   
        return $this->container
            ->get('pugx_multi_user.registration_manager')
            ->register('MyBundle\Entity\PersonStudent');
    }   
}
Run Code Online (Sandbox Code Playgroud)

问题是->get('pugx_multi_user.registration_manager')返回经理.在fos用户覆盖控制器帮助中,他们得到a form或a form.handler.我很难将这些与pugx_multi_user管理器"链接"起来.

我应该在registerTeacherAction()为教师设置角色时设置什么代码,以及registerStudentAction()成功注册设置学生角色?

controller symfony fosuserbundle pugxmultiuserbundle

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

使用FosUserBundle分配角色

我是Symfony的新手,我正在尝试使用FosUserBundle向用户注册一个ROLE,但我无法管理如何做到这一点.实际上我还集成了PUGXMultiUserBundle,以便为两个不同的角色提供两种不同的形式.谁能帮我?

提前致谢

--UPDATE--

我报告我的代码是为了清楚地解释.我用PUGXMultiUserBundle的指南创建了这个文件

这是我的实体:

//C:\BitNami\wampstack-5.4.23-0\frameworks\symfony\src\Acme\ManagementBundle\Entity\UserGroundStation.php
<?php

namespace Acme\ManagementBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use PUGX\MultiUserBundle\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity
 * @ORM\Table(name="user_GroundStation")
 * @UniqueEntity(fields = "username", targetClass = "Acme\ManagementBundle\Entity\User", message="fos_user.username.already_used")
 * @UniqueEntity(fields = "email", targetClass = "Acme\ManagementBundle\Entity\User", message="fos_user.email.already_used")
 */
class UserGroundStation extends User
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
}
Run Code Online (Sandbox Code Playgroud)

这是控制器

C:\BitNami\wampstack-5.4.23-0\frameworks\symfony\src\Acme\ManagementBundle\ControllerRegistrationController.php
<?php

namespace Acme\ManagementBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class RegistrationController extends Controller
{
    public function registerUserGroundStationAction()
    {
        return $this->container
                    ->get('pugx_multi_user.registration_manager')
                    ->register('Acme\ManagementBundle\Entity\UserGroundStation');
    }
}
Run Code Online (Sandbox Code Playgroud)

抱歉这个愚蠢的问题,但这是我的第一个项目,我觉得有点不对劲.

--update - …

symfony fosuserbundle pugxmultiuserbundle

7
推荐指数
2
解决办法
1万
查看次数

FOSUserBundle或PUGXMultiUserBundle有两个不同的用户配置文件(Symfony2)

我怀疑如何解决这个问题:

我的这个问题的Symfony2应用程序有两个不同的配置文件,名为'em"Seller"和"Buyer".目标是保留一堆关于"卖方"的属性,另一方面,关于"买方"(电子邮件和密码会做到这一点)并不多.

我意识到让两个不同的实体登录并使用FOSUserBundle进行注册并不容易.还有一些其他的捆绑包,例如PUGXMultiUserBundle,它们"破解"FOSUserBundle,并且不容易配置/实现.

所以我的问题是:使用黑客PUGXMultiUserBundle建议,处理它的实现和配置是否更正确,或者更好地坚持FOSUserBundle,拥有用户实体,以及与"卖方"的一对一关系代表卖方与买方不同的属性的实体?这种方法会有另一个问题,即注册表格应该分为两部分,用于卖方和买方注册(我不知道是否可以/建议使用FOSUserBundle)

我希望你们帮助我做对.干杯:)

php symfony fosuserbundle pugxmultiuserbundle

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

in_array()期望参数2为数组,给定为null

我用Symfony2创建了一个Web应用程序,我正在使用PUGX User Bundle和FosUserBundle来管理2个不同的用户.

这是两个用户之一:

  /**
   * @ORM\Entity
   * @ORM\Table(name="user_Operator")
   * @ORM\HasLifecycleCallbacks()
   * @UniqueEntity(fields = "username", targetClass = "Acme\ManagementBundle\Entity\User", message="Username already_used")
   * @UniqueEntity(fields = "email", targetClass = "Acme\ManagementBundle\Entity\User", message="Email already_used")
   */
  class UserOperator extends User
  {
      /**
       * @ORM\Id
       * @ORM\Column(type="integer")
       * @ORM\GeneratedValue(strategy="AUTO")
       */
      protected $id;

          /**
       * @ORM\PrePersist
       */
      public function setCreatedAtValue()
      {
          $this->addRole('ROLE_OPERATOR');
      }    
  }
Run Code Online (Sandbox Code Playgroud)

当我尝试注册时,我填写表单,提交,而不是出现:

Warning: in_array() expects parameter 2 to be array, null given in C:\BitNami\wampstack-
5.4.23-0\frameworks\symfony\vendor\friendsofsymfony\user-    
bundle\FOS\UserBundle\Model\User.php line 142
Run Code Online (Sandbox Code Playgroud)

第142行如下:

   135    public function addRole($role)
          {
              $role …
Run Code Online (Sandbox Code Playgroud)

php arrays symfony fosuserbundle pugxmultiuserbundle

1
推荐指数
2
解决办法
4万
查看次数