--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Hiển thị các bài đăng có nhãn Bài tập Link "thân thiện". Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Bài tập Link "thân thiện". Hiển thị tất cả bài đăng

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