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

 
Cấu hình Views làm việc Correctly Display Repeating Date Fields

Cấu hình Views làm việc Correctly Display Repeating Date Fields

Configuring Views and Date is a simple enough task for any reasonably experienced site builder, but I’ve found that configuring Views to correctly handle and display repeating events is another matter. To get us started, I’ve installed the following modules:

Hướng dẫn cách tạo web mail theo tên miền - Google

Hướng dẫn cách tạo web mail theo tên miền - Google

Sau khi thiết kế web cho doanh nghiệp, bạn cần quan tâm đến việc tạo thương hiệu cho doanh nghiệp mình.

Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny

Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny

Trong bài viết này, tôi giới thiệu cách thức cài đặt Nginx kết hợp với memcached trên Debian “lenny” 5.0 nhằm tăng hiệu năng

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

 

Diet con trung