通过添加类似的方法来覆盖您的自定义 UserProvider 是正确的方法
- 查找($用户 ID)
- 找到所有()
- 保存($用户)
- 删除($UserId)
和
public function buildObject(array $rowFromDatabase) {
$user = new MyUser();
$user->setId($row["id"]);
$user->setUsername($row["username"]);
$user->setSalt($row["salt"]);
$user->setRole($row["role"]);
$user->setPassword($row["password"]);
return $user;
}
MyUser是您实现 UserInterface 的POJO
那么你的 loadUserByUsername 将是
public function loadUserByUsername($username) {
$sql = "SELECT * FROM MyUserTable WHERE username = ?";
$row = $this->getDB()->fetchAssoc($sql, array($username));
if($row) {
return $this->buildDomainObject($row);
}else{
throw new UsernameNotFoundException(sprintf('User "%s" not found.', $username));
}
}
并限制与数据库的连接,您可以使用 DAO 模式。