Noel Peña Blanco
Noel Peña Blanco

Reputation: 21

Error Trying to get property of non-object and Undefined variable: Codeigniter

I am facing the following error:

Trying to get property of non-object and Undefined variable php errors in my code

Controller:

function showDoctorInformation(){
    $this->load->model('PatientModel');
    $data['doctorinfo'] = $this->PatientModel->getDoctorInformation();
    $this->parser->parse('patient_msgview', $data);

}

Model:

function getDoctorId() {
        $this->db->from('person');
        $this->db->select('doctorId');
        $doctorId = $this->db->get()->result();
        return $doctorId;
    }

function getDoctorInformation() {


    $doctorId = $this->getDoctorId();

        $this->db->from('DoctorInfo');
        $this->db->where('doctorId', $doctorId);
        $this->db->select('name', 'surname', 'Bio', 'Address', 'img');
        $doctorinfo = $this->db->get()->result();
        return $doctorinfo;

}

View:

<?= $doctorinfo->name ?>

I have displayed information from the database before with this method and I can't see the error now.

Upvotes: 1

Views: 1386

Answers (1)

Saty
Saty

Reputation: 22532

result() return

This method returns the query result as an array of objects, or an empty array on failure

So you need to fetch single data form your database using ->row()

function getDoctorId() {
$this->db->select('doctorId');
$this->db->from('person');
$this->db->select('doctorId');
$query = $this->db->get();
if ($query->num_rows == 1) {
     $row=$query->row();// fetch single row
     return $row->doctorId;// get doctor id
} else {
    return FALSE;
}
}

And in viwe you have to get your data using foreach loop

For exm

foreach ($doctorinfo as $row)
{
        echo $row['title'];
        echo $row['name'];
        echo $row['body'];
}

Upvotes: 1

Related Questions