我是 CakePHP 的新手,我想从自定义库迁移到 CakePHP。
在我的自定义库上,我有这样的用户属性:
auth_users
表来了解“user_ids”:
CREATE TABLE IF NOT EXISTS `auth_users` (
`id` int(11) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
auth_user_attributes
表存储“用户属性”:
CREATE TABLE IF NOT EXISTS `auth_user_attributes` (
`user_id` int(11) NOT NULL,
`attribute` text NOT NULL,
`value` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
因此,每当我想要通过 user_id 获得用户时,我的自定义库都会将 $system->auth->user->get(1)
返回到:
Array(
'fullname' => 'José Moreira',
'username' => 'Cuss',
...
)
如果我想保存用户,我有两种方法,保存整个数组 $system->auth->user->save(user_id,user_attributes_array)
或按属性 $system->auth->user->put(user_id, user_attribute, user_attribute_value)
我怎样才能在 CakePHP 上做这样的事情?
最佳答案
我建议您重新设计架构以适应 CakePHP 约定。否则你会失去很多自动魔法,如果没有人强制你,我认为你迁移到 Cake 是没有意义的。 用户
不能有多个全名
或用户名
。没有理由将 fullname
和 username
放入另一个表中。关注 Simple Authentication and Authorization Application turorial这样你就不会感到疼痛。
然后可以通过调用User->UserAttribute->saveMany()来保存用户属性.
关于php - 如何使用动态用户属性配置用户认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783059/