0

hi I m new in mongodb and codeigniter I have try to make simple CRUD operation in mongodb and php codeigniter I m trying to pass my array from Controller to view but it could not be done it gives an error A PHP Error was encountered

Severity: Notice

Message: Undefined variable: user_list

Filename: views/show_user.php

Line Number: 15

here is my code for Controller

class user extends CI_Controller
{
    public function __construct()
    {
         parent::__construct();
         //loading  the mongodb library
         $this->load->model('mongo_model');
    }

   //index where the controller starts
    public function index() 
    {
        $collection = $this->mongo_model->selectCollectiondb();
        $collection= iterator_to_array($collection);
        foreach ($collection as $users)
        {
        $data['_id']=$users['_id'];
        $data['firstname']=$users['firstname'];
        $data['lastname']=$users['lastname'];
        $data['email']=$users['email'];
        $data['password']=$users['password'];
        }
        print_r($data);
        $this->load->view('show_user',$data);
    }
}

Code for view is

<?php 
print_r($user_list);
exit();
<?php }?>
1
  • here is my model code public function selectCollectiondb() { $query=$this->mongo_db->db->selectCollection('myfirstCollection'); return $result=$query->find(); } Commented Sep 7, 2015 at 12:21

2 Answers 2

0

You are not passing proper array to variable to to view.

CodeIgniter passes variables/arrays from controller to view in the form of a parent array.

In your case, $data.

The keys of $data will become variables in view appended with $ symbol.

Virtually, in views, $data is extract() ed.

Corrected code:

public function index()  {
  $collection = $this->mongo_model->selectCollectiondb();
  $collection= iterator_to_array($collection);
  $user_list = array();
  foreach ($collection as $users) {
    $data['_id']=$users['_id'];
    $data['firstname']=$users['firstname'];
    $data['lastname']=$users['lastname'];
    $data['email']=$users['email'];
    $data['password']=$users['password'];
    $user_list[$users['_id']]['firstname'] = $users['firstname'];
    $user_list[$users['_id']]['lastname'] = $users['lastname'];
    $user_list[$users['_id']]['email'] = $users['email'];
    $user_list[$users['_id']]['password'] = $users['password'];
  }
  $data['user_list'] = $user_list;
  print_r($data);
  $this->load->view('show_user',$data);
}
Sign up to request clarification or add additional context in comments.

1 Comment

thanks @pupil for reply but I got the way to send the array $collection = $this->mongo_model->selectCollectiondb(); $collection= iterator_to_array($collection); $data['user_list']=$collection; print_r($data); $this->load->view('show_user',$data);
0

There is not any $user_list variable defined in controller code.

print $data in your view.

  <?php 
   print_r($data);
   exit();
  ?>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.