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 }?>
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);
}
There is not any $user_list variable defined in controller code.
print $data in your view.
<?php
print_r($data);
exit();
?>