Я новичок в 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 () .