>백엔드 개발 >PHP 튜토리얼 >CakePHP 기록 삭제

CakePHP 기록 삭제

WBOY
WBOY원래의
2024-09-10 17:25:58637검색

데이터베이스의 레코드를 삭제하려면 먼저 TableRegistry 클래스를 사용하여 테이블을 확보해야 합니다. get() 메소드를 사용하여 레지스트리에서 인스턴스를 가져올 수 있습니다. get() 메소드는 데이터베이스 테이블의 이름을 인수로 사용합니다. 이제 이 새 인스턴스는 삭제하려는 특정 레코드를 가져오는 데 사용됩니다.

이 새 인스턴스로 get() 메소드를 호출하고 기본 키를 전달하여 다른 인스턴스에 저장될 레코드를 찾습니다. 데이터베이스에서 레코드를 삭제하려면 TableRegistry 클래스의 인스턴스를 사용하여 delete 메소드를 호출하세요.

다음 코드와 같이 config/routes.php 파일을 변경합니다.

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 파일을 생성합니다. 컨트롤러 파일에 다음 코드를 복사합니다.

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

Users 디렉토리 아래에 delete.ctp라는 빈 View

파일을 만드세요.

src/템플릿/Users/delete.ctp

src/TemplateUsers 디렉토리를 생성하고 이미 생성된 경우 무시하고 해당 디렉토리 아래에 index.ctp라는 View파일을 생성합니다. . 해당 파일에 다음 코드를 복사하세요.

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에 접속 후 삭제 링크를 클릭하면 아래와 같이 기록을 삭제할 수 있는 화면이 출력됩니다.

Delete Link

기록을 삭제하려면 삭제 링크를 클릭하세요.

User Deleted

위 내용은 CakePHP 기록 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.