Cakephp 3 настроить столбец пароля для использования метода _setPassword в Model?

0

У меня есть столбец в базе данных с именем PASS котором хранится пароль. Он должен пройти метод _setPassword для хэширования. но по умолчанию он будет проходить этот метод только в том случае, если имя столбца является password, как сделать PASS для прохождения этого метода _setPassword, _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.

  • 3
    Разве вы не можете определить мутатор с правильным именем? (Я не знаю, что CakePHP будет думать о PASS в верхнем регистре, в отличие от pass но protected function _setPass($password) ?
  • 2
    В качестве альтернативы, вы не можете переименовать столбец базы данных в password или хотя бы уменьшить его в соответствии с соглашением CakePHP как pass а не как PASS ?
Теги:
cakephp
cakephp-3.0

1 ответ

3
Лучший ответ

Используйте правильное имя для объекта:

protected function _setPASS($password) {
    $hasher = new DefaultPasswordHasher();
    return $hasher->hash($password);
}
  • 0
    Если я использую столбец с именем, как этот user_password , так что я должен использовать? Я пытался: _setUser_password , _setUserPassword , _setUser_Password , _set_user_password
  • 0
    забудь, у меня была неправильная сущность с именем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню