要刪除資料庫中的記錄,我們首先需要使用 TableRegistry 類別來取得一個表。我們可以使用 get() 方法從登錄中取得實例。 get() 方法將以資料庫表的名稱作為參數。現在,這個新實例用於取得我們要刪除的特定記錄。
使用這個新實例呼叫 get() 方法並傳遞主鍵來尋找將保存在另一個實例中的記錄。使用TableRegistry類別的實例呼叫delete方法從資料庫中刪除記錄。
在 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(); });
在 src/Controller/UsersController.php 建立一個 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'); } } ?>
只要在 Users 目錄下建立一個名為 delete.ctp 的空 View 檔案。
在src/Template 處建立目錄Users, 如果已建立則忽略,並在該目錄下建立一個名為index.ctp 的View 檔案. 將以下程式碼複製到該檔案中。
<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/users
造訪上述 URL 並點擊「刪除」連結後,您將收到以下輸出,您可以在其中刪除記錄。
點選刪除連結即可刪除該記錄。
以上是CakePHP 刪除一筆記錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!