CakePHP - Hapus Record

Untuk menghapus record dalam database, pertama-tama kita perlu mendapatkan tabel menggunakan TableRegistrykelas. Kita dapat mengambil instance dari registri menggunakanget()metode. Metode get () akan menggunakan nama tabel database sebagai argumen. Sekarang, instance baru ini digunakan untuk mendapatkan record tertentu yang ingin kita hapus.

Panggil get()metode dengan contoh baru ini dan berikan kunci utama untuk menemukan catatan yang akan disimpan dalam contoh lain. Gunakan instance kelas TableRegistry untuk memanggildelete metode untuk menghapus catatan dari database.

Contoh

Lakukan perubahan pada file config / routes.php seperti yang ditunjukkan pada kode berikut.

config / routes.php

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('/users/delete', ['controller' => 'Users', 'action' => 'delete']);
   $builder->fallbacks();
});

Membuat UsersController.php mengajukan di src/Controller/UsersController.php. Salin kode berikut di file pengontrol.

src / controller / UsersController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\ORM\TableRegistry;
   use Cake\Datasource\ConnectionManager;
   class UsersController extends AppController{
      public function index(){
         $users = TableRegistry::get('users');
         $query = $users->find();
         $this->set('results',$query);
      }
      public function delete($id){
         $users_table = TableRegistry::get('users');
         $users = $users_table->get($id);
         $users_table->delete($users);
         echo "User deleted successfully.";
         $this->setAction('index');
      }
   }
?>

Buat saja yang kosong View file di bawah Users direktori dipanggil delete.ctp.

src / Template / Pengguna / delete.ctp

Buat direktori Users di src/Template, abaikan jika sudah dibuat, dan di bawah direktori itu buat Viewfile bernama index.ctp. Salin kode berikut di file itu.

src / Template / Pengguna / index.ctp

<a href="add">Add User</a>
<table>
   <tr>
   <td>ID</td>
   <td>Username</td>
   <td>Password</td>
   <td>Edit</td>
   <td>Delete</td>
   </tr>
   <?php
      foreach ($results as $row):
      echo "<tr><td>".$row->id."</td>";
      echo "<td>".$row->username."</td>";
      echo "<td>".$row->password."</td>";
      echo "<td><a href='".$this->Url->build(["controller" => "Users","action" => "edit",$row->id])."'>Edit</a></td>";
      echo "<td><a href='".$this->Url->build(["controller" => "Users","action" => "delete",$row->id])."'>Delete</a></td></tr>";
      endforeach;
   ?>
</table>

Jalankan contoh di atas dengan mengunjungi URL berikut dan klik Delete link untuk menghapus catatan.

http: // localhost: 85 / CakePHP / pengguna

Keluaran

Setelah mengunjungi URL di atas dan mengklik tautan Hapus, Anda akan menerima keluaran berikut di mana Anda dapat menghapus catatan.

Klik pada tautan Hapus untuk menghapus catatan.