我在Codeigniter项目中有多个控制器。我需要隐藏这些控制器名称。例如:我有两个控制器,家庭和学校。每所学校都有自己的页面,其中包括约,画廊,联系等,网址应为http://www.sitename.com/schoolname。我使用routes.php隐藏家庭控制器。 $ route ['(:any)'] ='home / $ 1'; 但它显示学校控制器的错误。请帮帮我.....谢谢。
答案 0 :(得分:2)
试试这个
/bin:/usr/bin:/usr/local/bin
控制器名称是必需的,因此请使用您想要的任何名称进行设置
答案 1 :(得分:2)
绝对不需要控制器名称。
在routes.php
中首先将默认控制器定义为home
(当用户访问主页sitename.com时)
$route['default_controller'] = 'home';
然后,您创建应将任何其他页面重定向到school
控制器的规则:
$route['.*'] = 'school';
现在home.php
控制器将如下所示:
class Home extends CI_Controller {
public function Index()
{
echo "This is the homepage";
}
}
在school.php
控制器中,您必须从请求的URL手动获取学校的名称:
class School extends CI_Controller {
public function _remap()
{
echo "User requested school: " . $this->uri->segment(1);
}
}
为什么要使用_remap
方法?因为无论URL或路由中的内容如何,都会每次调用它。
来自the docs:
如果你的控制器包含一个名为_remap()的方法,无论你的URI包含什么,它都会被调用。