Rumah > pembangunan bahagian belakang > tutorial php > CakePHP Kemas Kini Rekod

CakePHP Kemas Kini Rekod

PHPz
Lepaskan: 2024-09-10 17:25:51
asal
956 orang telah melayarinya

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();
});
Salin selepas log masuk

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);
         }
      }
   }
?>
Salin selepas log masuk

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>
Salin selepas log masuk
"; 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();
?>
Salin selepas log masuk

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!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan