我知道这个问题已经以类似的方式被问过好几次了。但是,我正在努力寻找适合我的情况的任何答案。我主要从事微软项目,并在关键时刻介入了这个项目以提供帮助。
这是情况。
我们有一个客户,他的网站包含 600 多个不同的页面。实际上,每个页面都使用相同的模板,只是填充了不同的数据。我们为他开发了一个 CMS,让他可以随意创建新页面。
我理想的解决方案将允许我将新创建的页面的名称存储在数据库中。前任。new_page_1 已创建并且现在存在于数据库中。现在,当我输入 www.mysite.com/new_page_1 时,这需要转到一个查找“new_page_1”(在 DB 中)的控制器,如果它存在,则加载一个视图(该视图需要用于所有 600 个页面)然后从数据库中获取其他数据并填充各个部分。
所以本质上,超过 600 多个页面需要使用相同的路由数组并映射到同一个控制器,然后再映射到同一个视图。
我尝试使用 $route['(:any)'] = 'custom_controler/create/$1 以及相同的数组键,但使用 main 和 _remap。无论每次它试图在我的视图中查找页面名称(它永远不会存在,因为我使用一个通用视图来处理 600 页)
关于如何做到这一点的任何想法?
更新 routes.php (这是文件中的最后一行)
$route['(:any)'] = "main/create/$1";
main.php(控制器)
class Main extends MY_Controller {
public function __construct() {
parent::__construct();
}
public function create($page)
{
$c = new Category();
$c->get_by_name(ucfirst($page));
$this->load->view('site/index',$c);
}
}
我正在尝试的 URL 是 sitename.servername.com/health 站点名和服务器名显然被替换了。
我得到的错误是
遇到错误
无法加载请求的文件:health/main/create.php