Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

CakePHP 3 - Menyimpan data dengan asosiasi yang bergantung pada asosiasi

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);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghapus Spasi Utama di MySQL

  2. Ganti nama tabel dengan spasi mysql

  3. Memuat tabel mysql ke python membutuhkan waktu yang sangat lama dibandingkan dengan R

  4. Apakah kueri pembaruan mysql mendapat manfaat dari indeks?

  5. Memperbaiki penyandian UTF-8 yang rusak