Чтобы удалить запись в базе данных, нам сначала нужно получить таблицу, используя класс TableRegistry . Мы можем извлечь экземпляр из реестра, используя метод get () . Метод get () примет имя таблицы базы данных в качестве аргумента. Теперь этот новый экземпляр используется для получения определенной записи, которую мы хотим удалить.
Вызовите метод get () для этого нового экземпляра и передайте первичный ключ, чтобы найти запись, которая будет сохранена в другом экземпляре. Используйте экземпляр класса TableRegistry для вызова метода delete для удаления записи из базы данных.
пример
Внесите изменения в файл config / rout.php, как показано в следующем коде.
конфиг / routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/users/delete', ['controller' => 'Users', 'action' => 'delete']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
Создайте файл UsersController.php в src / Controller / UsersController.php . Скопируйте следующий код в файл контроллера.
SRC / контроллер / 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'); } } ?>
Просто создайте пустой файл View в каталоге Users с именем delete.ctp .
SRC / Template / Users / delete.ctp
Создайте каталог Users в src / Template , проигнорируйте, если он уже создан, и в этом каталоге создайте файл View с именем index.ctp . Скопируйте следующий код в этот файл.
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>
Выполните приведенный выше пример, перейдя по следующему URL-адресу и нажав на ссылку Удалить, чтобы удалить запись.
Http: // Localhost: 85 / CakePHP / пользователей
Выход
После посещения вышеуказанного URL-адреса и нажатия на ссылку «Удалить» вы получите следующий вывод, в котором можно удалить запись.