【问题标题】:How to extend Cakedc Users plugin to use own table in Cakephp 3如何扩展 Cakedc 用户插件以在 Cakephp 3 中使用自己的表
【发布时间】:2017-03-03 05:51:15
【问题描述】:

我想扩展用户插件,以便我可以删除用户名字段并根据需要自定义我的表格。我已经看到了扩展插件的 github 文档,但这对我没有多大帮助。我试图扩展 UserTable.php,但它给了我错误未知方法“注册”。请建议最好的方法或简单的代码。

【问题讨论】:

    标签: php cakephp plugins cakephp-3.0 cakedc


    【解决方案1】:

    查看这个专门创建的 cloud9 环境,以展示如何扩展模型和表为例:https://ide.c9.io/steinkel/users-example-custom-table

    • 该示例使用自定义表 my_users
    • 该示例使用自定义 Table 类 MyUsersTable 扩展 CakeDC/Users.Users 表
    • 请记住,“用户名”字段默认用于 SocialLogin 和其他功能,如果要删除它,请确保将应用配置为依赖另一个字段。

    使用自定义表格所做的更改基本上是:

    • 创建一个新的数据库表,匹配原始字段并根据您的需要添加/删除字段
    • 在您的应用中创建一个新的 Table 类,扩展 CakeDC/Users.Users 表
    • 覆盖所需的方法,例如表类中的验证或查找器
    • 像我们在 'config/users.php' 中所做的那样,在配置键 'Users.table' 中设置您的表格

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

    你完成了:)

    【讨论】:

    • 感谢您的详细解释,但我无法打开 clound9,因为它需要信用卡。请以任何其他方式显示示例
    • 谢谢它有效,是否可以不在用户表中存储密码,将用户名和密码存储在另一个表中,其他详细信息保留在用户表中,密码字段除外
    • 是的,这是可能的。最简单的方法是使用 users 表来保存用户名和密码,然后配置 Auth 以包含额外的配置文件数据。
    • 不幸的是,我认为这两个链接都已过期(cloud9/dropbox)。出于好奇,目前是否有任何计划来适应即将推出的 Cake 授权/身份验证插件,因为 Auth 将很快被弃用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    相关资源
    最近更新 更多