答案 0 :(得分:10)
如果我正确理解了您的问题,答案是here。 你可以做到
$Calle = db('VoipBill')
->table('billing as bsrc')
->join('billing as bdst', 'bsrc.srcnum', '=', 'bdst.dstnum')
->where('bsrc.acct_name', '100080_company')
->where('bsrc.srcnum', $call->srcnum)
->whereBetween('bsrc.calldate', [$set_time_lower, $set_time_upper])
->get();
答案 1 :(得分:2)
官方doc现在非常清楚地描述了它并支持多种选择。这是一个简短的总结...
大多数常用方式是使用此表单:
basedir = "/whatever/whatever"
basedir = ${?FORCED_BASEDIR}
如果设置了env变量,那么它将覆盖您的默认值,否则它将保持不变。
更强大的方法是使用JVM属性-Dconfig.override_with_env_vars=true
来覆盖任何配置变量。在这种情况下,您不必创建重复的声明。您的env变量必须以前缀CONFIG_FORCE_
命名。了解env var如何在文档中配置名称映射。例如:CONFIG_FORCE_a_b__c___d
将映射到a.b-c_d
。
最后,如果你想推出自己的映射,这与上面描述的选项类似,而不使用override_with_env_vars
,你可以使用一些shell黑客攻击,如下所述。
如果必须使用环境变量,并且如果它们的命名与配置名称一致,则可以使用这样的bash脚本自动从环境变量转换为JVM cmd args。这些-D
JVM args将覆盖Typesafe配置值。例如:
# export my_PROP1=1
# export my_PROP2=2
#
# props=$(env | grep my_ | awk '{print "-D"$_}' ORS=' ')
#
# echo "JVM executable command is: java $props some.jar"
JVM executable command is: java -Dmy_PROP2=2 -Dmy_PROP1=1 some.jar
将大写转换为小写,如果它们没有直接映射到您的配置值,请根据需要对env变量进行子串操作。
答案 2 :(得分:0)
我正在使用系统属性-Dconfig.override_with_env_vars=true
。有了它,所有属性都可以通过环境变量自动覆盖。