只想将一个变量从模型返回到控制器,然后检查它的值是0还是1,但它不起作用。我使用Codeigniter。你能检查一下我的代码并帮我找出错误吗。
这是我的型号:
public function did_get_status($id){
$this->db->select('*');
$this->db->from('members');
$this->db->where('id',$id);
$query = $this->db->get();
if ($query->num_rows() == 1) {
$row = $query->row();
return array(
'member_status' => $row->member_status,
);
}
else{
return false;
}
}
这是我的控制器:
$status_info = $this->model_users->did_get_status($id);
$status = $status_info['member_status'];
if ($status === 0) {
//
}
else if ($status === 1) {
//
}
}
我认为首先通过打印从函数中获得的值来进行检查。这是我的控制器
$status_info = $this->model_users->did_get_status($id);
var_dump($status_info);
如果将其打印为数组,则将值与该类型的匹配
$status = $status_info['member_status'];
if ($status == 0) {
//
}
else if ($status == 1) {
//
}
}
用"=="替换"===",因为返回类型可能不是某些类型。像数组一样,返回1,0作为字符串和1,o在这里是初始值。
需要考虑的明显要点:
数据库中是否只有一个与此ID匹配?
你有没有试过用二重相等而不是三重相等?
这一切都是可以调试的。
$status = $status_info['member_status'];
您不能执行此操作,因为函数可以返回false
。你不做错误处理。
if ($status === 0)
它可能是不同的数据类型,可能是字符串。你做严格的比较。
使用==
。或者,更好的是,在模型中修复它:(int) value
。