0

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)か、属性ごとに保存する 2 つの方法があります$system->auth->user->put(user_id, user_attribute, user_attribute_value)

CakePHP でこのようなことを行うにはどうすればよいですか?

4

1 に答える 1

1

CakePHPの規則に合うようにスキーマを再設計することをお勧めします。そうしないと、多くのオートマジックが失われ、誰もあなたを強制しなければ、Cakeに移行する意味がありません。またはUserを複数持つことはできません。別のテーブルに入れる理由はありません。Simple Authentication and Authorization Application turorialに従ってください。そうすれば、苦痛はありません。fullnameusernamefullnameusername

次に、 User-> UserAttribute-> saveMany()を呼び出して、ユーザー属性を保存できます。

于 2012-10-08T14:07:51.533 に答える