Как настроить аутентификацию пользователя с динамическими атрибутами пользователя?

Я новичок в CakePHP, и я хочу перейти с моей пользовательской библиотеки на CakePHP.

У меня есть в моей пользовательской lib для пользовательских атрибутов что-то вроде этого:

таблицу 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, мой пользовательский lib возвращает $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. В противном случае вы потеряете много автоматов, и я не вижу смысла мигрировать в Торт, если вас никто не заставляет. User не может иметь более одного fullname username или username . Нет причин помещать fullname username и username в другую таблицу. Следуйте за Simple Authentication and Authorization Application turorial, и у вас не будет никакой боли.

Затем вы можете сохранить пользовательские атрибуты, вызвав User-> UserAttribute-> saveMany () .