我遇到以下错误
遇到PHP错误
严重性:4096
消息:类stdClass的对象无法转换为字符串
尝试执行以下操作
因此,我有一个用户表,该表具有“特权”列。如果将此列设置为1,则该用户为“特权用户”;如果将其设置为0,则该用户为“特权用户”。
此值由我的帐户注册表格指定。
我想做的是在codeigniter中设置一个变量,如果用户是特权用户则为1,否则为0。
我一直在尝试以下内容;
在我的模型中,我有以下内容;
public function get_privileged($user_id){
// $this->db->where('user_id',$id);
// $this->db->select('privileged');
// $query = $this->db->get('users');
$query = $this->db->select('privileged')->from('users')->where('id',$user_id)->get();
return $query->row();
}
**在我看来,我有以下**
<?php $user_id = $this->session->userdata('user_id');?>
<?php $status = $this->user_model->get_privileged($user_id);?>
<?php var_dump($status);?>
我刚尝试首先在控制器中回显结果,所以我知道它是否有效,最终目标是将值分配给变量,例如变量$ status。
var dump的结果是
object(stdClass)#27 (1) { ["privileged"]=> string(1) "0" }
请注意,该用户正确的值为0
如果要从数据库返回零,我想将变量设置为零,如果要从数据库返回1,则要将变量设置为1。
我该怎么做,我已经阅读了所有codeigniter文档,但是却无所适从。
答案 0 :(得分:1)
我相信问题在于它正在返回一个对象而不是字符串。
两个获得我想要的值,我使用了以下echo $status->privileged;
答案 1 :(得分:-1)
问题是当您只需要返回该行的值时就返回该行。
我的建议是使用此
$result = $this->db->query($query);
if ($result->num_rows() == 1){ //When I need just one value in case I check if there is just one row.
return $result->row(0)->privileged;
}else{
return false;
}
或仅此:
$result = $this->db->query($query);
return result->row(0)->privileged;