Codeigniter - 在环境之间切换

时间:2015-08-12 11:38:52

标签: php codeigniter

默认情况下,每个codeigniter应用程序都在ci.php中定义了环境:

Down Arrow
Press q to Exit 

Left Arrow
Press q to Exit 

Right Arrow
Press q to Exit 

我需要在我的应用中的不同国家/地区之间切换,每个国家/地区都有自己的配置和数据库。所以我尝试在' config'中为每个国家/地区创建文件夹。文件夹并放置所有需要的配置。然后我想从下拉列表中选择国家并切换环境。试过这样:

define('ENVIRONMENT', 'development');

但这会引发错误:

  

消息:已定义常量环境

我该怎么做?

6 个答案:

答案 0 :(得分:2)

  

Constant :常量是简单值的标识符(名称)。顾名思义, 值在此期间不会改变   执行脚本

因此,无法重新定义 ENVIRONMENT 常量的值,因为它已经定义。您可以使用另一个常量名称[除了环境或其他已经由codeignitor使用]或更好的变量来维护您的国家/地区相关版本。

答案 1 :(得分:2)

根文件夹中有一个文件调用 index.php (下面的图片附件)

01

在此处,如果您定义'development' ,它将在您的Codeigniter框架上显示您的错误

例如,如果发生数据库错误,则会显示此类错误

enter image description here

所以你可以查看什么是错的。

  

可以通过定义为 testingproduction 来测试。因此,您只能获取空白页而不是错误详情

我有没有使用定义这样的变量调用 mexico

阅读本文

  1. Handling Multiple Environments
  2. What is Development Environment?

答案 2 :(得分:0)

您可以尝试在index.php

中进行此操作

switch( $_POST['env']) { case 'mexico' : define('ENVIRONMENT', 'mexico'); break; //etc ... }

答案 3 :(得分:0)

解决方案 1: 由于在codeigniter中已经默认定义了ENVIRONMENT,所以这个特定的需求可以通过

if (!defined('ENVIRONMENT')) {
    define('ENVIRONMENT', 'mexico');
}

答案 4 :(得分:0)

由于在 codeigniter 中已经默认定义了 ENVIRONMENT,因此这个特定的需求可以通过

if (!defined('ENVIRONMENT')) {
    define('ENVIRONMENT', 'mexico');
}

答案 5 :(得分:-1)

  

您可以使用get方法并使用在URL中传递所选国家/地区ID或任何短代码   index.php中的以下代码:

您的网址应该是:

www.example.com?country=IN

<强> www.example.com/controller_name/function_name/IN

if ($_GET['country']=='IN')
   define('ENVIRONMENT', 'india');
elseif ($_GET['country']=='us')
   define('ENVIRONMENT', 'us');
else
   define('ENVIRONMENT', 'uk');