0

Users.php (モデル):

...
public function hashPassword($password){
    $hashed = hash('sha256', $password . self::HASH_CODE);
    return $hashed;
}
...

UserIdentity.php

...
else if($user->password!==Users::hashPassword($this->password))
...

エラー:

Non-static method Users::hashPassword() should not be called statically, assuming $this from incompatible context
4

3 に答える 3

1

hashPassword()で呼び出すには、静的関数として定義する必要がありますUsers::hashPassword()

public static function hashPassword($password) {
    ...

それ以外の場合は、クラスのインスタンスを作成Usersし、非静的な方法で呼び出すことができます。

$users = new Users();
$users->hashPassword($password);

厳密にyiiは、次のように呼び出すことができる場合があります (セットアップによって異なります)。

Yii::app()->Users->hashPassword($password);
于 2012-11-01T03:35:46.447 に答える
1
else if($user->password!==Users::model()->hashPassword($this->password))

これは静的メソッドではありません

于 2012-11-01T03:36:11.407 に答える
1

メイク機能static

public static function hashPassword($password){
    $hashed = hash('sha256', $password . self::HASH_CODE);
    return $hashed; }
于 2012-11-01T03:37:07.630 に答える