【问题标题】:How to create links in codeigniter?如何在codeigniter中创建链接?
【发布时间】:2013-03-29 14:48:23
【问题描述】:

对不起,我的英语不好,请使用翻译。 如何在 codeigniter 中创建链接?

如果我想在之后使用永久链接怎么办?

每次您更改永久链接时,我都必须更改整个系统代码?

是否有一个库可以根据这些参数生成链接并按照动态配置运行?

例如,如果我想从以下位置更改系统目录:

http://testing/webapp/index.php

到:

http://production/index.php

我需要更改所有代码吗? 这方面的最佳做法是什么?

【问题讨论】:

    标签: php codeigniter url


    【解决方案1】:

    您可以使用 codeingiter 的方法 base_url() 和 site_url()。

    首先,您需要在控制器中加载 URL 助手:

    $this->load->helper('url');
    

    请参阅下面的定义(根据 CI 文档,http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html


    site_url()

    返回您在配置文件中指定的站点 URL。 index.php 文件(或您在配置中设置为站点 index_page 的任何内容 文件)将被添加到 URL 中,您传递给的任何 URI 段也将添加到 URL 函数,以及配置文件中设置的 url_suffix。

    我们鼓励您在需要生成的任何时候使用此功能 一个本地 URL,以便您的页面在您的活动中变得更加便携 网址更改。

    可以选择将段作为字符串或 大批。这是一个字符串示例:

    echo site_url("news/local/123");上面的例子将返回 类似:

    http://example.com/index.php/news/local/123
    

    以下是作为数组传递的段的示例:

    $segments = array('news', 'local', '123');
    
    echo site_url($segments);
    

    base_url()

    返回您在配置文件中指定的站点基本 URL。示例:

    echo base_url();
    

    此函数返回与 site_url 相同的内容,但没有 index_page 或 url_suffix 被附加。

    与 site_url 一样,您可以将段提供为字符串或数组。 这是一个字符串示例:

    echo base_url("blog/post/123");
    

    上面的例子会返回类似:

    http://example.com/blog/post/123
    

    这很有用,因为与 site_url() 不同,您可以将字符串提供给 文件,例如图像或样式表。例如:

    echo base_url("/_user_guide_src_ci/images/icons/edit.png");
    

    这会给你类似的东西:

    http://example.com/images/icons/edit.png
    

    【讨论】:

      【解决方案2】:

      这正是配置文件中基本 URL 的用途。之后您唯一需要担心的是您的相对 URL,您甚至可以通过在 config 文件夹中创建新文件夹来设置不同的环境

      例如,如果我在 config.php 中直接设置在 config 文件夹中

      $config['base_url'] = 'http://localhost/hello';
      

      那么基本 url 总是 http://localhost/hello 现在假设我有我的家庭开发环境和生产环境。如果我将 config.php 复制到名为 production 的 config 文件夹中,那么 application/config/production/config.php 将基本 URL 设置为:

      $config['base_url'] = 'http://www.example.com/hello';
      

      然后在我的 index.php 中设置:

      define('ENVIRONMENT', 'production');
      

      我需要改变环境的任何地方 Codeigniter 都会为我改变它。所以在现场我使用生产环境,在家里我将环境更改为开发环境,CI 为我完成工作。

      然后在你的代码中使用 base_url() 来建立你的链接。

      例如:

       <a href="<?=base_url();?>hello_world">Hello World</a>
      

      将产生:

      //at home:
      http://localhost/hello_world
      //in production:
      http://www.example.com/hello_world
      

      有意义吗?

      【讨论】:

        猜你喜欢
        • 2012-02-14
        • 2016-10-16
        • 1970-01-01
        • 2014-01-29
        • 2013-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-09
        相关资源
        最近更新 更多