Để cập nhật một bản ghi trong cơ sở dữ liệu, trước tiên chúng ta cần phải giữ một bảng bằng cách sử dụng lớp TableRegistry PHP .
Chúng ta có thể lấy ví dụ ra khỏi registry bằng phương thức get () . Phương thức get () sẽ lấy tên của bảng cơ sở dữ liệu làm đối số. Bây giờ, cá thể mới này được sử dụng để có được bản ghi cụ thể mà chúng tôi muốn cập nhật.
Gọi phương thức get PHP () với cá thể mới này và chuyển khóa chính để tìm một bản ghi sẽ được lưu trong một cá thể khác. Sử dụng cá thể này để thiết lập các giá trị mới mà bạn muốn cập nhật và sau đó cuối cùng gọi phương thức save () với cá thể của lớp TableRegistry để cập nhật bản ghi.
config / routes.php
src / controller / UsersController.php
src / Mẫu / Người dùng / index.ctp
src / Mẫu / Người dùng / edit.ctp
http: // localhost: 85 / PHP / người dùng
Chúng ta có thể lấy ví dụ ra khỏi registry bằng phương thức get () . Phương thức get () sẽ lấy tên của bảng cơ sở dữ liệu làm đối số. Bây giờ, cá thể mới này được sử dụng để có được bản ghi cụ thể mà chúng tôi muốn cập nhật.
Gọi phương thức get PHP () với cá thể mới này và chuyển khóa chính để tìm một bản ghi sẽ được lưu trong một cá thể khác. Sử dụng cá thể này để thiết lập các giá trị mới mà bạn muốn cập nhật và sau đó cuối cùng gọi phương thức save () với cá thể của lớp TableRegistry để cập nhật bản ghi.
Thí dụ
Thực hiện các thay đổi trong tệp config / routes.php như trong đoạn mã sau.config / routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/users/edit', ['controller' => 'Users', 'action' => 'edit']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();Tạo một tệp UsersController.php tại src / Controller / UsersController.php . Sao chép mã sau trong tệp bộ điều khiể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 edit($id){ if($this->request->is('post')){ $username = $this->request->data('username'); $password = $this->request->data('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); } } } ?>Học lập trình PHP. Tạo một thư mục Người dùng tại src / Template , bỏ qua nếu đã tạo và dưới thư mục đó tạo một khung nhìn có tên là index.ctp . Sao chép mã sau vào tệp đó.
src / Mẫu / Người dùng / 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>Tạo một tệp Xem khác trong thư mục Người dùng có tên là edit.ctp và sao chép mã sau trong đó.
src / Mẫu / Người dùng / edit.ctp
<?php echo $this->Form->create("Users",array('url'=>'/users/edit/'.$id)); echo $this->Form->input('username',['value'=>$username]); echo $this->Form->input('password',['value'=>$password]); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>Thực hiện ví dụ trên bằng cách truy cập URL sau và nhấp vào liên kết Chỉnh sửa để chỉnh sửa bản ghi.
http: // localhost: 85 / PHP / người dùng
Đầu ra
Sau khi truy cập URL ở trên và nhấp vào liên kết Chỉnh sửa , bạn sẽ nhận được kết quả sau đây, nơi bạn có thể chỉnh sửa bản ghi.![]() |
| Học lập trình PHP |

Không có nhận xét nào:
Đăng nhận xét