Sepertinya lebih masuk akal untuk memiliki bidang boolean di tabel pengguna yang menentukan apakah pengguna adalah admin atau bukan.
Karena itu, Anda mungkin perlu mendefinisikan hubungan dalam model Anda jika belum ada. Secara teknis, berdasarkan nama tabel dan kolom Anda (user_id) Cake seharusnya memanggang ini untuk Anda, tapi saya tidak ingat apakah konvensional untuk memiliki nama model jamak (Pengguna, Admin), jadi ini mungkin tidak terjadi.
Pengguna:
public $belongsTo = [
'Admins' => [
'classname' => 'Admins', //are your models really plural?
'foreignKey' => 'user_id',
];
Admin
public $hasOne= [
'Users' => [
'classname' => 'Users',
'foreignKey' => 'user_id',
];
Kemudian, saya pikir Anda perlu menentukan beberapa informasi tentang admin, atau Anda tidak akan memiliki data apa pun untuk menyimpan asosiasi. Dalam tampilan:
echo $this->Form->input('admins.field1');
echo $this->Form->input('admins.field2');
echo $this->Form->input('admins.field3');
Perhatikan bahwa bidang ini dapat disembunyikan jika Anda tidak ingin memasukkan apa pun.
Untuk menyimpan, buat pengguna baru dari data permintaan (formulir Anda membuat pengguna, tetapi Anda bisa membuat admin dengan formulir, lalu menambahkan input seperti nama pengguna dan nama belakang pengguna). Pengontrol:
$user = $this->Admins->Users->newEntity();
if($this->request->is('post')) {
$this->Admins->Users->patchEntity($user, $this->request->data, [
'associated' => ['Admins']
]);
$this->Admins->Users->save($user);
}