在我的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 等等。
我是否需要指定每个静态页面?
这也可能源于我到达代码的注册部分。我将如何自动为用户提供自己的路线?
由于
答案 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的相应视图。