我将所有网站设置都保存在名为mh_settings的表中。 mh_setting表具有2个字段,即名称varchar(255)和类型varchar(255)。
在我的MY_Controller.php的核心文件夹和构造函数中,我将名称和密钥读入config_item(),如下所示:
$appConfigOptions = $this->MH_settings_model->mh_get_configurations();
if($appConfigOptions) {
foreach($appConfigOptions as $appConfigOption)
{
$this->config->set_item($appConfigOption->key,$appConfigOption->value);
}
}
模型按如下方式获取配置项:
class MH_settings_model extends CI_Model {
protected $table;
public function __construct() {
$this->table = 'mh_settings';
}
public function mh_get_configurations() {
$query = $this->db->get($this->table);
return $query->result();
}
}
由于某种原因,即使我在FALSE的数据库中键入带有值的强制转换mh_site_up_public,似乎总是将其设为字符串。
if(((boolean) $this->config->item('mh_site_up_public')) == FALSE) {
show_error($this->config->item('mh_site_down_public_message'));
}
我尝试了(布尔)而不是(布尔值)。
我尝试过==和===
有什么想法吗?
答案 0 :(得分:1)
由于表列是varchar,因此from translate import Translator
import requests
translator = Translator(from_lang = "zh", to_lang="en")
translation = translator.translate("""猗與那與、置我鞉鼓。
奏鼓簡簡、衎我烈祖。
湯孫奏假、綏我思成。
鞉鼓淵淵、嘒嘒管聲。
既和且平、依我磬聲。
於赫湯孫、穆穆厥聲。
庸鼓有斁、萬舞有奕。
我有嘉客、亦不夷懌。
自古在昔、先民有作。
溫恭朝夕、執事有恪。
顧予烝嘗、湯孫之將""")
print(translation)
将是带有文字文本mh_site_up_public
的字符串。
非空字符串(或者如果它们仅包含“ 0”)将被视为true。
示例:
FALSE
您可以在the manual中了解有关布尔值的更多信息。
答案 1 :(得分:1)
字符串“ FALSE”与布尔值FALSE不同。
包含任何内容的字符串的计算结果为TRUE,因此类型转换可以按预期工作。
您可以将字段更改为使用INT(0表示false,1表示true),在这种情况下,您可以将代码更改为:
if(!$this->config->item('mh_site_up_public')) {
show_error($this->config->item('mh_site_down_public_message'));
}
或者,如果您选择继续使用VARCHAR,则必须将代码更改为
if($this->config->item('mh_site_up_public') === 'FALSE') {
show_error($this->config->item('mh_site_down_public_message'));
}