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.
Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam kod berikut.
<?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.
<?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.
<a href="add">Add User</a>
ID | Username | Password | Edit | Delete | ".$row->id." | "; echo "".$row->username." | "; echo "".$row->password." | "; echo "Edit | "; echo "Delete | "; endforeach; ?>
Buat fail Lihat lain di bawah direktori Pengguna yang dipanggil edit.php dan salin kod berikut di dalamnya.
<?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
Selepas melawati URL di atas, ia akan memaparkan rekod dalam jadual pengguna seperti yang ditunjukkan di bawah −
Klik pada butang Edit dan ia akan memaparkan skrin berikut kepada anda −
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 −
Atas ialah kandungan terperinci CakePHP Kemas Kini Rekod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!