Ngu ngơ học làm web (x10) - CakePHP2 - Bài tập Link "thân thiện"

Tiếp theo của: Ngu ngơ học làm web (x9) - CakePHP2 – Tạo link "thân thiện"
-----

Phần x10. CakePHP2 – Bài tập Link “thân thiện”


Xem (clip số 16BT – chickenrainshop):

1. Tạo link “thân thiện” cho chức năng xem phân loại sách

Hiện tại đường dẫn của chức năng phân loại sách có dạng:

Nghĩa là action view đang truy vấn dựa theo id, giờ sẽ viết lại hàm view, để nó truy vấn theo trường slug của bảng categories.

[CategoriesController.php, action view]

public function view($slug = null) {
                        $options = [
                                    'conditions' => ['Category.slug' => $slug]
                        ];
                        $category = $this->Category->find('first', $options);
                        if (empty($category0)) {
                                    throw new NotFoundException(__('Không tìm thấy thể loại sách này'));
                        }
                        $this->set('category', $category);
            }

Yêu cầu cần làm tiếp theo là chuyển đường dẫn truy vấn dạng:


Về dạng:

http://local.chickenrainshop/danh-muc /slug

Mở tập tin routes.php, và thêm vào dòng mã sau:

Router::connect('/danh-muc/:name', ['controller' => 'categories', 'action' => 'view'], ['pass' => ['name']]);

2. Tạo link “thân thiện” cho chức năng xem thông tin tác giả

[WritersController.php, action view] viết lại như sau:

public function view($slug = null) {
                        $options = [
                                    'conditions' => ['Writer.slug' => $slug]
                        ];
                        $writer = $this->Writer->find('first', $options);
                        if(empty($writer)) {
                                    throw new NotFoundException(__('Không tìm thấy tác giả này!'));
                        }
                        $this->set('writer', $writer);
            }

[routes.php] thêm dòng mã sau:


Router::connect('/tac-gia/:name', ['controller' => 'writers', 'action' => 'view'], ['pass' => ['name']]);
-----------
Cập nhật 28/4/2017
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web