데이터베이스의 레코드를 삭제하려면 먼저 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/사용자
위 URL에 접속 후 삭제 링크를 클릭하면 아래와 같이 기록을 삭제할 수 있는 화면이 출력됩니다.
기록을 삭제하려면 삭제 링크를 클릭하세요.
위 내용은 CakePHP 기록 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!