Det låter som att det kan vara mer meningsfullt att ha ett booleskt fält i användartabellen som definierar om en användare är admin eller inte.
Med detta sagt kan du behöva definiera relationen i dina modeller om den inte redan finns där. Tekniskt sett, baserat på dina tabellnamn och och kolumner (user_id) bör Cake baka in detta åt dig, men jag kommer inte ihåg om det är vanligt att ha plural modellnamn (Användare, Admins), så detta kanske inte har hänt.
Användare:
public $belongsTo = [
'Admins' => [
'classname' => 'Admins', //are your models really plural?
'foreignKey' => 'user_id',
];
Admin
public $hasOne= [
'Users' => [
'classname' => 'Users',
'foreignKey' => 'user_id',
];
Sedan tror jag att du måste ange lite information om administratören, annars kommer du inte att ha några data för att spara föreningen. I vyn:
echo $this->Form->input('admins.field1');
echo $this->Form->input('admins.field2');
echo $this->Form->input('admins.field3');
Observera att dessa fält kan döljas om du inte vill att något ska matas in.
För att spara, skapa en ny användare från förfrågningsdata (ditt formulär skapar en användare, men du kan skapa en administratör med formuläret och sedan lägga till indata som användar.namn och användar.efternamn). Styrenhet:
$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);
}