Có vẻ như có một trường boolean trong bảng người dùng xác định xem người dùng có phải là quản trị viên hay không sẽ có ý nghĩa hơn.
Điều đó đang được nói, bạn có thể cần phải xác định mối quan hệ trong các mô hình của mình nếu nó chưa có. Về mặt kỹ thuật, dựa trên tên bảng và và các cột (user_id) Cake sẽ giúp bạn làm được điều này, nhưng tôi không nhớ liệu thông thường có các tên mô hình số nhiều (Người dùng, Quản trị viên) hay không, vì vậy điều này có thể đã không xảy ra.
Người dùng:
public $belongsTo = [
'Admins' => [
'classname' => 'Admins', //are your models really plural?
'foreignKey' => 'user_id',
];
Quản trị viên
public $hasOne= [
'Users' => [
'classname' => 'Users',
'foreignKey' => 'user_id',
];
Sau đó, tôi nghĩ bạn cần chỉ định một số thông tin về quản trị viên, nếu không bạn sẽ không có bất kỳ dữ liệu nào để lưu liên kết. Theo quan điểm:
echo $this->Form->input('admins.field1');
echo $this->Form->input('admins.field2');
echo $this->Form->input('admins.field3');
Lưu ý rằng các trường này có thể bị ẩn nếu bạn không muốn nhập bất kỳ thứ gì.
Để lưu, hãy tạo người dùng mới từ dữ liệu yêu cầu (biểu mẫu của bạn tạo người dùng, nhưng bạn có thể tạo quản trị viên với biểu mẫu, sau đó thêm các đầu vào như user.name và user.surname). Bộ điều khiển:
$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);
}