Rumah  >  Artikel  >  pembangunan bahagian belakang  >  CakePHP Kemas Kini Rekod

CakePHP Kemas Kini Rekod

PHPz
PHPzasal
2024-09-10 17:25:51939semak imbas

Untuk mengemas kini rekod dalam pangkalan data, kita perlu mendapatkan jadual menggunakan kelas TableRegistry dahulu. Kami boleh mengambil contoh daripada pendaftaran menggunakan kaedah get(). Kaedah get() akan mengambil nama jadual pangkalan data sebagai hujah. Kini, kejadian baharu ini digunakan untuk mendapatkan rekod tertentu yang ingin kami kemas kini.

Panggil kaedah get() dengan tika baharu ini dan hantar kekunci utama untuk mencari rekod, yang akan disimpan dalam tika lain. Gunakan contoh ini, untuk menetapkan nilai baharu yang anda mahu kemas kini dan kemudian, akhirnya panggil kaedah save() dengan contoh kelas TableRegistry untuk mengemas kini rekod.

Contoh

Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam kod berikut.

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/edit', ['controller' => 'Users', 'action' => 'edit']);
   $builder->fallbacks();
});

Buat fail UsersController.php di src/Controller/UsersController.php. Salin kod berikut dalam fail pengawal.

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 edit($id){
         if($this->request->is('post')){
            $username = $this->request->getData('username');
            $password = $this->request->getData('password');
            $users_table = TableRegistry::get('users');
            $users = $users_table->get($id);
            $users->username = $username;
            $users->password = $password;
            if($users_table->save($users))
            echo "User is udpated";
            $this->setAction('index');
         } else {
            $users_table = TableRegistry::get('users')->find();
            $users = $users_table->where(['id'=>$id])->first();
            $this->set('username',$users->username);
            $this->set('password',$users->password);
            $this->set('id',$id);
         }
      }
   }
?>

Buat direktori Pengguna di src/Template, abaikan jika sudah dibuat, dan di bawah direktori itu cipta pandangan yang dipanggil index.php. Salin kod berikut dalam fail itu.

src/Template/Users/index.php

<a href="add">Add User</a>
"; echo ""; echo ""; echo ""; echo ""; endforeach; ?>
ID Username Password Edit Delete
".$row->id."".$row->username."".$row->password."EditDelete

Buat fail Lihat lain di bawah direktori Pengguna yang dipanggil edit.php dan salin kod berikut di dalamnya.

src/Template/Users/edit.php

<?php echo $this->Form->create(NULL,array('url'=>'/users/edit/'.$id));
   echo $this->Form->control('username',['value'=>$username]);
   echo $this->Form->control('password',['value'=>$password]);
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>

Laksanakan contoh di atas dengan melawati URL berikut dan klik pada Edit pautan untuk mengedit rekod.

http://localhost/cakephp4/users

Output

Selepas melawati URL di atas, ia akan memaparkan rekod dalam jadual pengguna seperti yang ditunjukkan di bawah −

After Visiting

Klik pada butang Edit dan ia akan memaparkan skrin berikut kepada anda −

Edit Button

Kini, kami akan mengemas kini nama CakePHP Kemas Kini Rekod kepada CakePHP Kemas Kini Rekod123 dan menyerahkan butirannya. Skrin seterusnya yang dipaparkan adalah seperti berikut −

CakePHP Kemas Kini Rekod

Atas ialah kandungan terperinci CakePHP Kemas Kini Rekod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:CakePHP Lihat RekodArtikel seterusnya:CakePHP Lihat Rekod