Thêm action edit trong cakephp3
Lượt xem: 3400
Thêm action edit trong cakephp3
Ứng dụng hiện tại của chúng ta có thể lưu bài viết (articles) nhưng lại không thể chỉnh sửa chúng. Vậy chúng ta cùng cải thiện nó bằng cách thêm action sau vào file ArticlesController.php
// src/Controller/ArticlesController.php
// thêm function edit
public function edit($slug)
{
$article = $this->Articles->findBySlug($slug)->firstOrFail();
if ($this->request->is(['post', 'put'])) {
$this->Articles->patchEntity($article, $this->request->getData());
if ($this->Articles->save($article)) {
$this->Flash->success(__('Bài viết của bạn đã được cập nhật'));
return $this->redirect(['action' => 'index']);
}
$this->Flash->error(__('Không thể cập nhật bài viết'));
}
$this->set('article', $article);
}
Hành động này trước tiên đảm bảo rằng người dùng đã cố gắng truy cập vào một bản ghi hiện có. Nếu họ đã chuyển qua tham số $slug hoặc bài viết không tồn tại, NotFoundException sẽ bị ném và CakePHP ErrorHandler sẽ hiển thị trang lỗi thích hợp.
Tiếp theo hành động kiểm tra xem yêu cầu là yêu cầu POST hay PUT. Nếu đúng như vậy, thì chúng tôi sử dụng dữ liệu POST / PUT để cập nhật thực thể bài viết của mình bằng cách sử dụng phương thức patchEntity(). Cuối cùng, chúng tôi gọi save() đặt thông báo flash thích hợp và chuyển hướng hoặc hiển thị lỗi xác thực.
Video
Nguồn https://book.cakephp.org/3.0/en/quickstart.html