Codeigniter从路由器配置中设置的控制器重定向

时间:2016-02-12 13:19:36

标签: php .htaccess codeigniter redirect

我想将页面重定向到路由配置中设置的网址。

class init extends CI_Controller {

function __construct() {
    parent::__construct();

    $this->load->helper("url");
    $this->load->model('store');

}

function product($id, $slug=''){

    //if no slug value passed then we obtain the product title and redirect
    if($slug === ''){

        //get the title value from products table and run it through _slugify function
        $slug = $this->_slugify($this->store->read_productTitle($id));

        redirect('init/product/'. $id . '/' . $slug);  //okey when redirect
       // redirect('product/'. $id . '/' . $slug);     redirect loop

    }


}

在routes.php中

 $route['product/(:num)/(:any)'] = 'init/product/$1/$2';

当我重定向到redirect('product/'. $id . '/' . $slug)时,它显示网页有重定向循环。如何在不制作产品控制器的情况下解决这个问题。

1 个答案:

答案 0 :(得分:1)

将您的班级代码更改为我的

class Init extends CI_Controller //mark first letter uppercase
{

function __construct() {
    parent::__construct();

    $this->load->helper("url");

}

function product($id, $slug='')
{

    //if no slug value passed then we obtain the product title and redirect
    if($slug === '')
    {        
        $slug = 'hello'; //$this->_slugify($this->store->read_productTitle($id));
        redirect('product/'. $id . '/' . $slug);   
    }
    else
    {
        echo $slug;
    }       
}

}

在路线改变

$route['product/(:num)/(:any)'] = 'init/product/$1/$2';

您的重定向工作正常,因为您重定向来自同一功能的相同功能:)