Tạo action view trong ArticlesController
Lượt xem: 2744
Tạo action view trong ArticlesController
Nếu bạn đã nhất vào một liên kết "view" trong trang danh sách bài viết. Bạn sẽ thấy một trang lỗi nói rằng hành động đó đã được thực hiện. Bây giờ hãy sửa nó lại như sau:
// Add to existing src/Controller/ArticlesController.php file
public function view($slug = null)
{
$article = $this->Articles->findBySlug($slug)->firstOrFail();
$this->set(compact('article'));
}
Mặc dù đây là một hành động đơn giản, nhưng chúng ta đã sử dụng một số tính năng mạnh mẽ của CakePHP. Chúng ta bắt đầu hành động bằng cách sử dụng finBySlug() là một trình tìm kiếm động. Phương thức này cho phép chúng ta tìm kiếm tất cả các bài viết bằng một slug nhất định. Sau đó, chúng ta sử dụng firstOrFail() để tìm nạp bản ghi đầu tiên hoặc ném NotFoundException.
Hành động của chúng ta có một tham số $slug nhưng tham số đó đến từ đâu? Nếu người dùng yêu cầu /articles/view/first-post thì giá trị 'first-post' được truyền dưới dạng $slug bởi các lớp định tuyến và gửi đi của CakePHP. Nếu chúng ta tải lại trình duyệt (browser) với hành động mới đã được lưu, chúng ta sẽ thấy một trang lỗi khác, CakePHP cho chúng ta thấy rằng chúng ta đang thiếu một view template. Hãy khắc phụ điều đó bằng cách tạo view template.
Video
Nguồn https://book.cakephp.org/3.0/en/quickstart.html