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

 
Seo top

Những gói dịch vụ SEO khác

Tiến hành SEO audit đánh giá hiện trạng website và phân tích 10 đối tủ cạnh tranh (2 tuần) và phân tích thị trường, khách hàng, lập kế hoạch online marketing ngắn và dài hạn, xác định mục tiêu chiến dịch, phương pháp đo lường, chọn lựa  phương pháp đo lường hiệu quả

Một thập niên đầy biến động tại Hewlett/Packard (HP)

Một thập niên đầy biến động tại Hewlett/Packard (HP)

Một thập niên đầy biến động tại Hewlett/Packard (HP) với việc các thành viên hội đồng quản trị (HĐQT) và Giám đốc điều hành công ty liên tục từ chức hoặc bị buộc ngưng việc do rất nhiều lí do khác nhau.

Xem qua Commerce Kickstart 2 cho Drupal E-commerce

Xem qua Commerce Kickstart 2 cho Drupal E-commerce

We first blogged about Drupal Commerce in late 2011.

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

 

Diet con trung