只想将一个变量从模型返回到控制器,然后检查它的值是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) {
//
}
}
答案 0 :(得分:3)
我认为首先要检查你从功能中获得的值。 喜欢这是我的控制器
$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在这里是intiger。
答案 1 :(得分:1)
要考虑的明显要点:
数据库中是否只有一个匹配此ID?
您是否尝试使用双等于而不是三等于?
答案 2 :(得分:1)
这一切都是可以调试的。
$status = $status_info['member_status'];
您无法执行此操作,因为该函数可以返回false
。你不做错误处理。
if ($status === 0)
它可能是一种不同的数据类型,可能是一个字符串。你做了严格的比较。
使用==
。或者,更好的是,在模型中修复它:(int) value
。