3

我有带有 Doctrine 和 sfDoctrineGuardPlugin 的 symfony 1.4。

我在为sfGuardUser加载symfony 学说制成的固定装置时遇到问题:data-dump

问题的核心是fixture文件中的密码没有加密,在fixture加载过程中会被加密。

另一方面 - 当我们从数据库中转储数据时,密码已经加密,如果我们再次尝试加载它们,密码的值将第二次重新散列

有谁知道如何避免这种情况?

当需要更改模型时,我正在使用此过程来防止数据丢失。如果有人知道这个特定问题的其他解决方案,我将不胜感激!

4

1 回答 1

4

在旧的 symfony 论坛中有一个解决方案。

简而言之:在您的用户模型中创建一个 setEncryptedPassword 函数,如下所示:

  public function setEncryptedPassword($v)
  {
    if ($v !== null) {
        $v = (string) $v;
    }

    if ($this->password !== $v) {
        parent::_set('password', $v);
    }

    return $this;
  }

并在您的转储中将所有出现的内容更改passwordencrypted_password.

于 2011-07-25T10:39:25.593 回答