CakePHP - Bir Kaydı Sil
Veritabanındaki bir kaydı silmek için, önce TableRegistrysınıf. Örneği kayıttan çıkarabiliriz.get()yöntem. Get () yöntemi, veritabanı tablosunun adını bağımsız değişken olarak alır. Şimdi, bu yeni örnek, silmek istediğimiz belirli bir kaydı almak için kullanılır.
Ara get()yöntemini kullanın ve başka bir durumda kaydedilecek bir kaydı bulmak için birincil anahtarı iletin. TableRegistry sınıfının örneğini kullanarakdelete veri tabanından kayıt silme yöntemi.
Misal
Aşağıdaki kodda gösterildiği gibi config / route.php dosyasında değişiklikler yapın.
config / route.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();
});
Oluşturmak UsersController.php dosya src/Controller/UsersController.php. Aşağıdaki kodu denetleyici dosyasında kopyalayın.
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');
}
}
?>
Sadece boş bir tane yarat View altında dosya Users dizin aradı delete.ctp.
src / Template / Kullanıcılar / delete.ctp
Bir dizin oluşturun Users -de src/Template, önceden oluşturulmuşsa yoksay ve bu dizin altında bir Viewdosya çağrıldı index.ctp. Aşağıdaki kodu o dosyaya kopyalayın.
src / Template / Kullanıcılar / 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>
Aşağıdaki URL'yi ziyaret ederek yukarıdaki örneği yürütün ve tıklayın Delete link kaydı silmek için.
http: // localhost: 85 / CakePHP / kullanıcılar
Çıktı
Yukarıdaki URL'yi ziyaret edip Sil bağlantısını tıkladıktan sonra, kaydı silebileceğiniz aşağıdaki çıktıyı alacaksınız.
Kaydı silmek için Sil bağlantısını tıklayın.