用户的安全身份验证symfony2
我在我的项目中使用symfony2,我有一名实体员工,其中包括emlpolyee的所有信息以及登录到其会话的用户名和密码。我想为员工创建一个安全的身份验证,但当我检查FOS Userbundle和SonataUserBundle的文档时,我发现我应该创建一个新的实体用户,其中包括新的用户名和密码。但我想使用存储在实体雇员中的用户名和密码。这是我的实体: employee.php用户的安全身份验证symfony2,symfony,authentication,Symfony,Authentication,我在我的项目中使用symfony2,我有一名实体员工,其中包括emlpolyee的所有信息以及登录到其会话的用户名和密码。我想为员工创建一个安全的身份验证,但当我检查FOS Userbundle和SonataUserBundle的文档时,我发现我应该创建一个新的实体用户,其中包括新的用户名和密码。但我想使用存储在实体雇员中的用户名和密码。这是我的实体: employee.php class employee { private $codeEmployee; ////// private
class employee
{
private $codeEmployee;
//////
private $username;
private $password;
public function getCodeEmployee()
{
return $this->codeEmployee;
}
/////
public function setusername($username)
{
$this->username = $username;
return $this;
}
public function getusername()
{
return $this->username;
}
public function setPassword($password)
{
$this->password = $password;
return $this;
}
public function getPassword()
{
return $this->password;
}
////////
}
如何做到这一点???说明了实现这一点的步骤
您的Employee类必须扩展基本用户类:
<?php
namespace Foo\BarBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="employees")
*/
class Employee extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=255)
*/
protected $codeEmployee;
// Optional
public function __construct()
{
parent::__construct();
// your own logic
}
public function getCodeEmployee()
{
return $this->codeEmployee;
}
public function setCodeEmployee($codeEmployee)
{
$this->codeEmployee = $codeEmployee;
return $this;
}
}
# app/config/config.yml
fos_user:
db_driver: orm
firewall_name: main
user_class: Foo\BarBundle\Entity\Employee
配置的其余部分(security.yml文件、FOSUserBundle路由文件和要启动的其他命令)解释如下
还解释了如何扩展用户实体和重写表单。但是在employee实体中,我有一个字符串id,它是codeEmployee,我没有构造函数。因此构造函数是可选的。并且必须将codeEmployee声明为列。我编辑我的答案。