Heim  >  Artikel  >  Backend-Entwicklung  >  CakePHP Einen Datensatz löschen

CakePHP Einen Datensatz löschen

WBOY
WBOYOriginal
2024-09-10 17:25:58445Durchsuche

Um einen Datensatz in der Datenbank zu löschen, müssen wir zunächst eine Tabelle mithilfe der Klasse TableRegistry abrufen. Wir können die Instanz mit der Methode get() aus der Registrierung abrufen. Die Methode get() verwendet den Namen der Datenbanktabelle als Argument. Jetzt wird diese neue Instanz verwendet, um einen bestimmten Datensatz abzurufen, den wir löschen möchten.

Rufen Sie die Methode get() mit dieser neuen Instanz auf und übergeben Sie den Primärschlüssel, um einen Datensatz zu finden, der in einer anderen Instanz gespeichert wird. Verwenden Sie die Instanz der TableRegistry-Klasse, um die Methode delete aufzurufen, um einen Datensatz aus der Datenbank zu löschen.

Beispiel

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Code gezeigt.

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

Erstellen Sie eine UsersController.php-Datei unter src/Controller/UsersController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

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

Erstellen Sie einfach eine leere Ansichtsdatei im Verzeichnis Benutzer mit dem Namen delete.ctp.

src/Template/Users/delete.ctp

Erstellen Sie ein Verzeichnis Benutzer unter src/Template, ignorieren Sie es, wenn es bereits erstellt wurde, und erstellen Sie unter diesem Verzeichnis eine Ansichtsdateimit dem Namen index.ctp . Kopieren Sie den folgenden Code in diese Datei.

src/Template/Users/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>

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen und auf Link löschen klicken, um den Datensatz zu löschen.

http://localhost:85/CakePHP/users

Ausgabe

Nachdem Sie die obige URL aufgerufen und auf den Link „Löschen“ geklickt haben, erhalten Sie die folgende Ausgabe, in der Sie den Datensatz löschen können.

Delete Link

Klicken Sie auf den Link „Löschen“, um den Datensatz zu löschen.

User Deleted

Das obige ist der detaillierte Inhalt vonCakePHP Einen Datensatz löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn