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.
Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Code gezeigt.
<?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.
<?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.
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.
<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
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.
Klicken Sie auf den Link „Löschen“, um den Datensatz zu löschen.
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!