Как расширить плагин Cakedc Users для использования собственной таблицы в Cakephp 3

Я хочу расширить плагин пользователей, чтобы я мог удалить поле имени пользователя и настроить свою таблицу в соответствии с потребностями. Я видел документацию github для расширения плагина, но это мне мало помогает. Я попытался расширить UserTable.php, но выдает ошибку Неизвестный метод «зарегистрироваться». Пожалуйста, предложите лучший способ или простой код.


person Amit Dangwal    schedule 03.03.2017    source источник


Ответы (1)


Проверьте эту среду cloud9, созданную специально, чтобы показать, как расширить модель и таблицу в качестве примера: https://ide.c9.io/steinkel/users-example-custom-table

  • В примере используется пользовательская таблица my_users
  • В примере используется пользовательский класс Table MyUsersTable, расширяющий таблицу CakeDC/Users.Users.
  • Имейте в виду, что поле «имя пользователя» используется в SocialLogin и других функциях по умолчанию, если вы собираетесь удалить его, убедитесь, что вы настроили приложение так, чтобы оно полагалось на другое поле.

В основном изменения, сделанные для использования пользовательской таблицы:

  • Создайте новую таблицу базы данных, соответствующую исходным полям, и добавляйте/удаляйте поля в соответствии с вашими потребностями.
  • Создайте в своем приложении новый класс Table, расширяющий таблицу CakeDC/Users.Users.
  • Переопределите необходимые методы, такие как проверка или средства поиска в классе таблицы.
  • Настройте свою таблицу в конфигурационном ключе «Users.table», как мы это сделали в «config/users.php».

    $config = [
        'Users' => [
            //Table used to manage users
            'table' => 'MyUsers',
        ] 
    ]; 
    return $config;
    

И готово :)

person steinkel    schedule 03.03.2017
comment
Спасибо за подробное объяснение, но я не могу открыть clound9, потому что для этого нужна кредитная карта. Пожалуйста, покажите пример любым другим способом - person Amit Dangwal; 03.03.2017
comment
Вот полный исходный код › dl.dropboxusercontent.com/u/ 142951/cakedc-users-custom-table.gz - person steinkel; 03.03.2017
comment
Спасибо, это работает, можно ли не хранить пароль в таблице пользователей, хранить имя пользователя и пароль в другой таблице, а другие данные остаются в таблице пользователей, кроме поля пароля - person Amit Dangwal; 04.03.2017
comment
Да, это возможно. Самый простой способ — использовать таблицу пользователей для хранения имени пользователя и пароля, а затем настроить Auth для хранения дополнительных данных профиля. - person steinkel; 06.03.2017
comment
Я думаю, что срок действия обеих ссылок истек (cloud9/dropbox), к сожалению. И из любопытства, есть ли какие-либо текущие планы по размещению будущих плагинов авторизации/аутентификации Cake, поскольку Auth скоро станет устаревшим? - person meder omuraliev; 06.04.2018
comment
Да, мы работаем над интеграцией новых плагинов аутентификации и авторизации прямо сейчас, спасибо! - person steinkel; 07.04.2018