Cakephp 3自定义密码列在模型中使用_setPassword方法?

时间:2015-01-10 22:17:14

标签: php cakephp cakephp-3.0

我在数据库中有一个名为PASS的列,用于存储密码。它需要通过_setPassword方法进行散列。但是默认情况下,如果列名为password,它只会通过该方法,如何让PASS通过_setPassword方法password

<?php
namespace App\Model\Entity;

use Cake\ORM\Entity;
use Cake\Auth\DefaultPasswordHasher;
/**
 * DefaultUser Entity.
 */
class DefaultUser extends Entity
{

    /**
     * Fields that can be mass assigned using newEntity() or patchEntity().
     *
     * @var array
     */
    protected $_accessible = [
        'first_name' => true,
        'last_name' => true,
        'email' => true,
        'PASS' => true,
        'active' => true,
    ];


    protected function _setPassword($password) {
        $hasher = new DefaultPasswordHasher();
        return $hasher -> hash($password);
    }

}

注意:这是cakephp 3.0代码。

1 个答案:

答案 0 :(得分:4)

使用实体设置器的正确名称:

protected function _setPASS($password) {
    $hasher = new DefaultPasswordHasher();
    return $hasher->hash($password);
}