1

在我的 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控制器将用于我的静态页面... homeaboutcontactfaq等。

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

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

谢谢

4

1 回答 1

0

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

路线.php:

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

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

您的 routes.php 文件的顺序很重要,它们应该是文件中的最后两行。如果您有其他控制器(即 News/Blog/Products/Whatever),它们的路由应该在这两个路由之上。

页面.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 加载适当的视图。

于 2013-10-17T02:40:27.090 回答