Chức năng đọc, thêm, sửa, xóa (CRUD) trong Cakephp 4 rất cần thiết khi quản trị. Nhờ đó mà Admin có thể thêm hay thay đổi bất kỳ dữ liệu nào trên Database mà không cần vào Phpadmin. Vậy để tạo những chức năng này thì sẽ phải làm những gì? Hãy đọc bài này ngay sau đây.
Trước khi thực hành bạn cần tham khảo 2 bài viết đó là:
Chức năng thêm dữ liệu
Bước 1: Tạo tập tin ArticlesTable.php xem lại bài ở trên
Bước 2: Tạo tập tin ArticlesController.php
trong Controller
public function add() { $data = $this->Articles->newEmptyEntity(); if ($this->request->is('post')) { $data = $this->Articles->patchEntity($data, $this->request->getData()); if ($this->Articles->save($data)) { $this->Flash->success(__('Dữ liệu đã được lưu vào Database.')); return $this->redirect(['action' => 'add']); } $this->Flash->error(__('Không thể thêm dữ liệu.')); } $this->set('data', $data); }
Bước 3: Tạo file add.php
trong template
<?php echo $this->Form->create($data); echo $this->Form->input('username').'<br/>'; echo $this->Form->input('password').'<br/>'; echo $this->Form->button(__('Save')); echo $this->Form->end(); ?>
Bước 4: Tạo route trong route.php
$routes->connect('/add', ['controller' => 'Articles', 'action' => 'add']);
Cuối cùng truy cập vào http://localhost/cakephp/add để thêm Data.
Chức năng hiển thị data
Bước 1: Thêm function trong Controller
public function read() { $data = $this->Articles->find('all'); $this->set(compact('data')); }
Bước 2: Thêm tập tin read.php
trong templates
<table> <?php foreach ($data 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" => "Articles","action" => "edit",$row->id])."'>Edit</a></td>"; echo "<td><a href='".$this->Url->build(["controller" => "Articles","action" => "delete",$row->id])."'>Delete</a></td></tr>"; endforeach; ?> </table>
Bước 3: Thêm route
$routes->connect('/read', ['controller' => 'Articles', 'action' => 'read']);
Chức năng xóa
public function delete($id){ $data = TableRegistry::get('Articles'); $users = $data->get($id); $data->delete($users); echo "Xóa thành công!"; $this->setAction('read'); }
Thêm route
$routes->connect('/delete/{$id}', ['controller' => 'Articles', 'action' => 'delete']);
Đang cập nhật thêm…
Dữ liệu trong cơ sở dữ liệu sau khi có CRUD thì sẽ rất tiện lợi. Quản trị viên sẽ dễ dàng quản lý thông tin và sửa xóa nhanh chóng. Với bài viết này bạn sẽ từng bước nắm vững kiến thức về Cakephp 4 rồi đấy.