我正在尝试将我的视图页面链接到另一个控制器。
my test_view.php page
//this page address is base_url/controller1/function1
<a href='controller1/function2'> test </a>
如果我点击,页面地址将是base_url/controller1/function1/controller1/function2
,这不是我的愿望。
我的控制器
//the first function1 is to show my test_view page
function function1 (){
$this->load->view('test_view');
}
//I can't get to this function2 with the link I used
function function2 (){
$this->load->view('funny');
}
有人可以帮我解决这个问题吗?非常感谢。
答案 0 :(得分:2)
它链接到相对URL,你需要以'/'开头才能使用web root
<a href='/controller1/function2'> test </a>
答案 1 :(得分:2)
当然 - 您只需告诉CodeIgniter显示路径:
<a href="<?php echo site_url("controller1/function2");?>">
一件事:这会显示您的配置中定义的站点的绝对路径,而不是相对路径。
我更喜欢相对路径,所以我喜欢创建一个名为site_path
的通用函数,以便在没有绝对URL的情况下执行相同的操作。我将它包含在我的一个通用加载的库中,它看起来像这样:
function site_path($url) {
return "/$url";
}
这样做的好处是,如果我最初在子目录中开发站点,我可以将site_path设置为return "/subdirectory/$url"
,然后在我启动后删除子目录。
答案 2 :(得分:2)
您可以在test_view.php页面中使用以下代码,
<a href='<?php echo base_url();?>controller1/function2'> test </a>