默认情况下,每个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');
但这会引发错误:
消息:已定义常量环境
我该怎么做?
答案 0 :(得分:2)
Constant :常量是简单值的标识符(名称)。顾名思义, 值在此期间不会改变 执行脚本
因此,无法重新定义 ENVIRONMENT 常量的值,因为它已经定义。您可以使用另一个常量名称[除了环境或其他已经由codeignitor使用]或更好的变量来维护您的国家/地区相关版本。
答案 1 :(得分:2)
在根文件夹中有一个文件调用 index.php
(下面的图片附件)
在此处,如果您定义'development'
,它将在您的Codeigniter框架上显示您的错误。
例如,如果发生数据库错误,则会显示此类错误
所以你可以查看什么是错的。
您可以通过定义为
testing
或production
来测试。因此,您只能获取空白页而不是错误详情。
我有没有使用定义这样的变量调用 mexico
阅读本文
答案 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');