2

我正在寻找关于导航如何在 CI 中工作的解释。

基本上,我有一个带有一些链接的顶部导航,并希望连接到它们。我只做过这个

<a href="somelink.html">Some Link</a>

我知道您通过控制器然后在 a 标签的 href 部分中运行,但我的似乎没有工作,所以我显然做错了什么。

以我的产品页面为例。

<a href ="user/products">Products</a>

然后它在“用户”控制器中的功能

    public function products() {

    $data['title']='Products';
    $this->load->view ('header_view', $data);
    $this->load->view ('products.php', $data);
    $this->load->view ('footer_view', $data);
}

结果是“在服务器上找不到对象”错误消息。

我错过了什么?

4

2 回答 2

1

如果您尚未从 URL中删除index.php,则需要将其包含在相对链接中。

生成控制器/函数链接的最简单方法可能是使用 CodeIgniter 的URL Helper

  • site_url()函数将返回您在配置中指定的站点 URL,以及您的索引页url 后缀,也如您的配置中设置的那样。如果您想在用户控制器中创建产品功能的 URL,则:

    <a href ="<?php echo site_url("user/products"); ?>">Products</a>
    
  • 您也可以使用该anchor()功能。(也在 CodeIgniter 的 URL 助手中。)

    echo anchor('user/products', 'Products');
    

使用这些函数很有用,因为如果您的站点的 URL 要更改,您只需在config中更改一次,因为这些函数将确保您的链接将反映此更改。

于 2013-04-18T23:55:31.920 回答
0

您的控制器名称是user

用户/产品通常意味着 没有自定义路由的控制器名称/功能

你的控制器文件

class User extends CI_Controll
{
        function products()
        {
            // codes
        }


}

在您的头文件中路由到products(function)。视图/header.php

<a href="<?php echo base_url('user/prouducts') ?>">View Products</a>

并将在每一页上工作

于 2013-04-19T06:23:02.280 回答