消息:正在尝试获取非对象Filename:controllers/site.php的属性


Message: Trying to get property of non-object Filename: controllers/site.php

我的模型名称是common_Model,有一个方法:

function select_fields_where_like_join($tbl = '', $data, $joins = '', $where = '', $single = FALSE, $field = '', $value = '',$group_by='',$order_by = '',$limit = '')
{
    if (is_array($data) and isset($data[1]))
    {
        $this->db->select($data[0],$data[1]);
    }
    else
    {
        $this->db->select($data);
    }
    $this->db->from($tbl);
    if ($joins != '') 
    {
        foreach ($joins as $k => $v) 
        {
            $this->db->join($v['table'], $v['condition'], $v['type']);
        }
    }
    if ($value !== '') 
    {
        $this->db->like('LOWER(' . $field . ')', strtolower($value));
    }
    if ($where != '') 
    {
        $this->db->where($where);
    }
    if($group_by != '')
    {
        $this->db->group_by($group_by);
    }
    if($order_by != '')
    {
        if(is_array($order_by))
        {
            $this->db->order_by($order_by[0],$order_by[1]);
        }
        else
        {
            $this->db->order_by($order_by);
        }
    }
    if($limit != '')
    {
        if(is_array($limit))
        {
            $this->db->limit($limit[0],$limit[1]);
        }
        else
        {
            $this->db->limit($limit);
        }
    }
    $query = $this->db->get();
    if ($query->num_rows() > 0)
    {
        if ($single == TRUE) 
        {
            return $query->row();
        }
        else 
        {
            return $query->result();
        }
    }
    else 
    {

        return FALSE;
    }

}

这是我的控制器方法:

public function load_vo_training($themeID=NULL)
{
    if (!isset($themeID) || !is_numeric($themeID) || empty($themeID) || $themeID == NULL) 
    {
        $msg = 'Redirected To Themes, As No Record Found For your Request:FAIL';
        $this->session->set_flashdata('msg', $msg);
        redirect('site/load_theme');
    }
    $bool = is_admin($this->data['UserID']);
    if (!is_admin($this->data['UserID'])) 
    {
        $PTable = 'Theme T';
        $selectData = array('COUNT(*) AS TotalRecordsFound', true);
        $joins = array(
            array(
                'table' => 'project_theme PT',
                'condition' => 'PT.theme_id = T.theme_id AND PT.enabled = 1',
                'type' => 'INNER'
            ),
            array(
                'table' => 'project P',
                'condition' => 'P.project_id = PT.projects_id',
                'type' => 'INNER'
            ),
            array(
                'table' => 'sys_groups_projects_themes_permissions SGPTP',
                'condition' => 'SGPTP.projectID = P.project_id AND SGPTP.trashed = 0',
                'type' => 'INNER'
            ),
            array(
                'table' => 'sys_groups G',
                'condition' => 'G.groupID = SGPTP.groupID',
                'type' => 'INNER'
            ),
            array(
                'table' => 'user_account U',
                'condition' => 'U.groupID = G.groupID',
                'type' => 'INNER'
            )
        );
        $where = array(
            'T.theme_id' => $themeID
        );
        $countResult = $this->common_model->select_fields_where_like_join($PTable, $selectData, $joins, $where);
        if ($countResult->TotalRecordsFound > 0) 
        {
            echo $countResult->TotalRecordsFound;
        } else 
        {
            echo "no record";
        }
    }
}

我得到的输出是这样的,带有错误消息array(1){[0]=>object(stdClass)#26(1)}{["TotalRecordsFound"]=>string(3)"139"}}

遇到PHP错误

严重性:通知

消息:正在尝试获取非对象的属性

文件名:controllers/site.php

线路编号:5408

请帮助我,并提前表示感谢。

$countResult是一个对象数组。因此,您必须使用数组索引来访问其中的值。使用!在访问数组之前为空($countResult)。
if (!empty($countResult)) {
    if ($countResult[0]->TotalRecordsFound > 0) 
    {
        echo $countResult[0]->TotalRecordsFound;
    } else 
    {
         echo "no record";
     }
}