Hướng dẫn học : Tạo link thân thiện trong CakePHP

Hướng dẫn học : Tạo link thân thiện trong CakePHP

Trong bài viết này , nội dung chính chủ yếu xoay quanh vấn đề rewrite liên kết trong CakePHP , rewrite ở đây chính là cách làm cho 1 đường link theo mặc định ban đầu trở nên thận thiện hơn và đẹp hơn .

Thông thường ta dùng router hoặc htaccess để rewrite link . Trong bài viết này chủ yếu là Config Router (cấu hình router trong CakePHP)

Ví dụ : Gán link mặc định

Giả sử ta có 1 link như sau http://localost/cakephp/blogs/home

<?php
class BlogsController extends AppController{
    
    function home(){
      ..............
    }
}
Tức là ta đang truy cập :

- Controller : Blogs
- function : home()

Tôi muốn khi truy cập vào http://localost/cakephp thì nó sẽ tự hiểu là http://localost/cakephp/blogs/home thì làm như sau

Trong app/config/routes.php ta thêm

Router::connect('/', array('controller' => 'blogs', 'action' => 'home')); 

Ví dụ : Tạo link thân thiện

Giả sử ta có link http://localhost/cakephp/blog/view/12

<?php

class BlogsController extends AppController{
    
    function view($id=null){
      ..............
    }
}

Tức là ta đa truy cập :

- Controller : Blogs
- function : view()
- Xem bài viết có id = 12

Nhưng tôi muốn khi truy cập vào http://localhost/cakephp/12-Bai-viet-so-muoi-hai.html thì nó vẫn hiểu là http://localhost/cakephp/blog/view/12

- Trong đó (12-Bai-viet-so--muoi-hai) : "12" là ID của bài viết và "Bai-viet-so--muoi-hai" là tiêu đề của bài viết

Ta vào app/config/router.php thêm đoạn mã sau

Router::connect(

        '/:id-:slug.html', 
        array('controller' => 'blogs', 'action' => 'view'),
        array(
            'pass' => array('id', 'slug'),
            "id"=>"[0-9]+", // chỉ là số
        )
    ); 

Trong file view.ctp bạn phải tạo link như trên . Có nhiều cách , các bạn có thể viết bằng mã Html cơ bản hoặc dùng hàm của Cakephp .

Ví dụ tạo link http://localhost/cakephp/12-Bai-viet-so-muoi-hai.html dùng hàm có sẳn của CakePHP

Trong file view.ctp

<?php 

        echo $html->link('Bài viet so muoi hai', 
            array(  
                'controller' => 'blogs',    
                'action' => 'view',    
                'id' => 12,    
                'slug' => Inflector::slug('Bài viet so muoi hai'))); 
    ?>

- Bài viết tham khảo tại : http://book.cakephp.org/view/945/Routes-Configuration

Tags: 
Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Bộ phần mềm máy chủ tổng hợp: eBox

Bộ phần mềm máy chủ tổng hợp: eBox

Như đã nói trong một số post trước, phần mềm máy chủ là lĩnh vực mà PMNM phổ biến nhất, hiệu quả nhất từ trước khi Windows NT, Exchange, … ra đời.

Ngày 5 - Học về Big Data – NoSQL là gì?

Ngày 5 - Học về Big Data – NoSQL là gì?

NoSQL là viết tắt cho Not Relational SQL hay Not Only SQL. Nhiều người nghĩ rằng NoSQL có nghĩa là No SQL, là không đúng

Làm sao để trở thành một nhà khoa học dữ liệu - Data Scientist

Làm sao để trở thành một nhà khoa học dữ liệu - Data Scientist

Nhà khoa học dữ liệu (Data Scientist) được Harvard Business Review đánh giá là “công việc hấp dẫn nhất thế kỷ 21

Công ty diệt chuột T&C

 

Diet con trung