简体   繁体   中英

Fatal error: Call to undefined method stdClass::result_array() CodeIgniter

Im trying to populate 3 tables in the view by passing 3 different arrays from the controller to the view (which get data from the database). But I get an error as

Fatal error: Call to undefined method stdClass::result_array() in C:\xampp\htdocs\SEP\application\views\ManagerViewProjectDatabase.php on line 39

The controller method is as

function ManagerProjects()
{
    $this->load->model('ViewProjectsModel');
    $new=$this->ViewProjectsModel->ManagerViewProjects('new');
    $ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
    $completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
    $data=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
    $this->username=$this->session->userdata('username');
    $this->DashBoardMainView($this->username);
    $this->load->view('ManagerViewProjectDatabase',$data);
}

the model class function is as

function ManagerViewProjects($status)
{
    $this->db->select('*');
    $this->db->from('project');
    $this->db->where('status',$status);
    $query=$this->db->get();
    $q1=$query->row();
    return $q1;
}

and the view is as

                    <tbody>
                    <?php foreach ($new->result_array() as $row): ?>
                        <tr>
                            <td><?php echo $row['project_id'];?></td>
                            <td><?php echo $row['name'];?></td>
                            <td><?php echo $row['start_date'];?></td>
                            <td><?php echo $row['deadline'];?></td>
                            <td><?php echo $row['description'];?></td>
                            <td><?php echo $row['language'];?></td>
                            <td><?php echo $row['framework'];?></td>
                        </tr>
                    <?php endforeach; ?>
                    </tbody>

ManagerViewProjectDatabase Line 39 is the beginning of the foreach.

Im new to code igniter so Im not sure what goes on here with the error. Please point me in the right direction. Thanks in advance

Problem at Your Modal. model class function is as

So change Your model code Like this

function ManagerViewProjects($status)
{
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$query=$this->db->get();
return $query;
}

Your code results convert to row and return so only one result return.

so you return $query Variable for all results return .

This code useful for you

Use result_array() in your model page:

Change your codes as follows:

model:

$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$q1=$this->db->get()->result_array();
return $q1;

Controller:

function ManagerProjects()
{
   $this->load->model('ViewProjectsModel');
   $new=$this->ViewProjectsModel->ManagerViewProjects('new');
   $ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
   $completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
   $data['result']=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
   $this->username=$this->session->userdata('username');
   $this->DashBoardMainView($this->username);
   $this->load->view('ManagerViewProjectDatabase',$data);
}

View:

  <tbody>
     <?php foreach ($result as $key=>$value): ?>
      <tr>
      <td><?php echo $value['project_id'];?></td>
      <td><?php echo $value['name'];?></td>
      <td><?php echo $value['start_date'];?></td>
      <td><?php echo $value['deadline'];?></td>
      <td><?php echo $value['description'];?></td>
      <td><?php echo $value['language'];?></td>
      <td><?php echo $value['framework'];?></td>
      </tr>
     <?php endforeach; ?>
  </tbody>

also you can rewrite your model function like this:

function ManagerViewProjects($status)
{
  $this->db->where('status',$status);
  return $this->db->get('project');
}

It's becomes more compact and readable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM