CodeIgniter路由:我是否需要为每个页面创建一个条目?

时间:2013-10-17 00:04:31

标签: php codeigniter codeigniter-routing

在我的CodeIgniter安装中,我的路线文件目前是:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

//routes
$route['about']              = 'page/view/about';
$route['(:any)']             = 'page/view/$1';
$route['default_controller'] = "page/view";

我的问题是 - 每次有新页面时,是否需要进行新的$route通话,或者有办法自动执行此操作?我的page控制器将用于我的静态页面... home about contact faq 等等。

我是否需要指定每个静态页面?

这也可能源于我到达代码的注册部分。我将如何自动为用户提供自己的路线?

由于

1 个答案:

答案 0 :(得分:0)

避免为每个页面手动设置路由的一种方法是创建一个Page控制器并将所有uri路由到此控制器。

routes.php文件:

// Default controller
$route['default_controller'] = "page/index";

// Page controller catch all
$route['(:any)'] = 'page/view/$1';

routes.php文件的顺序很重要,这些应该是文件中的最后两行。如果你有其他控制器(即新闻/博客/产品/随便),他们的路线应该超过这两条路线。

page.php文件

class Page extends CI_Controller {

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

    public function index()
    {
         // This will be where your load your top page (homepage)
    }

    public function view($uri)
    {       
         // This will be where you load all other content pages (about/info/contact/etc)
         echo $uri;
    }   
}

显然这是非常基础的,但它可以让您了解如何实现Pages的自动路由。一旦你知道了uri,就可以使用它来从csv / database / textfile中提取有关该页面的信息,然后加载该uri的相应视图。