codeigniter base_url 从控制器更改

发布于 2024-12-11 03:20:54 字数 135 浏览 0 评论 0原文

有什么方法可以从我的控制器设置我的 base_url() 吗?

或者我可以设置我的 base_url Dynamic 吗?

我怎样才能做到这一点?

Is there any way to set my base_url() from my controller's ?

OR Can I set my base_url Dynamic ?

How can I achieved this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白色秋天 2024-12-18 03:20:54

搜索后我找到了解决方案。
是的,我们可以从控制器更改 base_url 作为

$this->config->set_item('base_url','http://example.com/xyz') ;

参考:用户指南

也许这个答案应该对某人有所帮助。

After Searching i found the solution .
yes we can change the base_url from our controller as

$this->config->set_item('base_url','http://example.com/xyz') ;

Ref: User Guide

May this answer should help some one .

剑心龙吟 2024-12-18 03:20:54

基本 url 在您的配置文件中设置,因此您可以在调用 base_url() 之前从控制器更新 $config 变量。

http://codeigniter.com/forums/viewthread/60181/

编辑

当然,我还没有测试过这一点,所以不知道覆盖是否真的能按预期工作。

您始终可以使用自己的类扩展 url 帮助器并覆盖 base_url 方法。

The base url is set in your config file, so you can update the $config variable from your controllers before you call base_url().

http://codeigniter.com/forums/viewthread/60181/

EDIT

Of course, I haven't tested this, so don't know if the overwrite will actually work as expected.

You could always extend the url helper with your own class and override the base_url method.

﹏雨一样淡蓝的深情 2024-12-18 03:20:54

好吧,这很有趣,但它可能无法正常工作和/或破坏所有其他东西。但是,如果您在相关文件中进行这些更改,则可以在配置文件中拥有多个基本 url 配置设置,如下所示:

$config['base_url']['default']  = 'http://firstbase.xyz';
$config['base_url']['otherbase']    = 'http://secondbase.xyz';

可以像 base_url('','default');// 生成 http://firstbase.xyz

正如您在文档中找到的那样,使用 $this->config->set_item('base_url','http://abc.com/xyz') ; 似乎更容易/更好。


system/helpers/url_helper.php : 第 ~63 行

if ( ! function_exists('base_url'))
{
    function base_url($uri = '',$index='')
    {
        $CI =& get_instance();
        return $CI->config->base_url($uri,$index);
    }
}

system/core/Config.php

第 66 行

$this->set_item('base_url', $index);

第 175 行

function item($item, $index = '')
{
    if ($index == '')
    {
        if ( ! isset($this->config[$item]))
        {
            return FALSE;
        }

        $pref = $this->config[$item];
    }
    else
    {
        if ( ! isset($this->config[$index]))
        {
            return FALSE;
        }

        if ( ! isset($this->config[$index][$item]))
        {
            return FALSE;
        }

        $pref = $this->config[$index][$item];
    }

    return $pref;
}

第 214 行

function slash_item($item,$index)
{
    if ( ! isset($this->config[$item][$index]))
    {
        return FALSE;
    }
    if( trim($this->config[$item][$index]) == '')
    {
        return '';
    }
    return rtrim($this->config[$item][$index], '/').'/';
}

第 265 行

function base_url($uri = '',$index='')
{
    return $this->slash_item('base_url',$index).ltrim($this->_uri_string($uri),'/');
}

第 332 行

function set_item($item, $value, $index)
{
    $this->config[$item][$index] = $value;
}

OK, so this was fun, but it might not work right and/or break all kinds of other stuff. But, if you make these changes in the relevant files, you can have multiple base url config settings in the config file like so:

$config['base_url']['default']  = 'http://firstbase.xyz';
$config['base_url']['otherbase']    = 'http://secondbase.xyz';

which can be called like base_url('','default');//produces http://firstbase.xyz.

It seems much easier/better to use $this->config->set_item('base_url','http://abc.com/xyz') ; as you found in the docs.


system/helpers/url_helper.php : line ~63

if ( ! function_exists('base_url'))
{
    function base_url($uri = '',$index='')
    {
        $CI =& get_instance();
        return $CI->config->base_url($uri,$index);
    }
}

system/core/Config.php

line ~66

$this->set_item('base_url', $index);

line ~175

function item($item, $index = '')
{
    if ($index == '')
    {
        if ( ! isset($this->config[$item]))
        {
            return FALSE;
        }

        $pref = $this->config[$item];
    }
    else
    {
        if ( ! isset($this->config[$index]))
        {
            return FALSE;
        }

        if ( ! isset($this->config[$index][$item]))
        {
            return FALSE;
        }

        $pref = $this->config[$index][$item];
    }

    return $pref;
}

line ~214

function slash_item($item,$index)
{
    if ( ! isset($this->config[$item][$index]))
    {
        return FALSE;
    }
    if( trim($this->config[$item][$index]) == '')
    {
        return '';
    }
    return rtrim($this->config[$item][$index], '/').'/';
}

line ~265

function base_url($uri = '',$index='')
{
    return $this->slash_item('base_url',$index).ltrim($this->_uri_string($uri),'/');
}

line ~332

function set_item($item, $value, $index)
{
    $this->config[$item][$index] = $value;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文