hi i am currently working on a second module of my hmvc file and there comes an error that i think it wont load the models of this module. the previous modules models, works fine. what may be the error of this one? here is my codes.
error
Severity: Notice
Message: Undefined property: CI::$lEmploymentStatus_Model
Filename: MX/Controller.php
Line Number: 59
Backtrace:
File: C:\xampp\htdocs\TLC_HR\application\third_party\MX\Controller.php
Line: 59
Function: _error_handler
File: C:\xampp\htdocs\TLC_HR\application\modules\EmploymentStatus\Controllers\EmploymentStatus.php
Line: 43
Function: __get
File: C:\xampp\htdocs\TLC_HR\index.php
Line: 292
Function: require_once
controller - EmploymentStatus.php
<?php
class EmploymentStatus extends MY_Controller{
public function __construct(){
parent::__construct();
}
// VIEW REDIRECTING /////////////////////////////////////////////////////////
public function index(){
$data['content_view'] = 'EmploymentStatus/empstat_read';
$this->templates->admin_template($data);
}
public function add_view(){
$data['content_view'] = 'EmploymentStatus/add_view';
$this->templates->admin_template($data);
}
// CREATE /////////////////////////////////////////////////////////
public function create(){
$this->load->library('form_validation');
$this->load->model('EmploymentStatus_Model');
$this->form_validation->set_rules('ES_NAME','Name','trim|required|min_length[2]|max_length[20]');
$this->form_validation->set_rules('ES_DESCRIPTION','Description','trim|required|max_length[50]');
if($this->form_validation->run() == FALSE){
$this->add_view();
}else{
if($query = $this->lEmploymentStatus_Model->insert()){
$this->add_view();
}else{
$this->add_view();
}
}
}
}
?>
model - EmploymentStatus_Model.php
<?php
class EmploymentStatus_Model extends CI_Model{
///// CREATE /////////////////////////////////////////////////////////
public function insert(){
$input = array(
'ES_NAME' => $this->input->post('ES_NAME'),
'ES_DESCRIPTION' => $this->input->post('ES_DESCRIPTION')
);
$insert = $this->db->insert('employment_status',$input);
return $insert;
}
}
?>
it works perfectly fine. It just have a typo.
if($query = $this->lEmploymentStatus_Model->insert()){
$this->add_view();
lEmploymentStatus must be EmploymentStatus
Related
AM trying to connect modal in controller but it showing error like
Fatal error: Call to undefined function customerslist() in C:\xampp\htdocs\CI\application\controllers\Customer.php on line 25
A PHP Error was encountered
Severity: Error
Message: Call to undefined function customerslist()
Filename: controllers/Customer.php
Line Number: 25
Backtrace:
My code is following:
controller : Customer.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Customer extends CI_Controller {
public function __construct(){
parent:: __construct();
$this->load->library('form_validation');
$this->load->model('admin');
$this->load->model('customers');
}
public function index()
{
if($this->session->userdata('Admin')==false)
{
redirect('login');
}
else
{
$data['title'] = "Customer";
$data['customerlist'] = $this->customers>customerslist();
$this->load->view('customer',$data);
}
}
}
Modal: Customers.php
<?php
class Customers extends CI_Model {
function __construct()
{
parent::__construct();
}
//view all Customers
function customerslist()
{
$res = $this->db->get('customers_list');
if($res->num_rows() >0){
foreach($res->result_array() as $row){
$customerlist[] = $row;
}
return $customerlist;
}
else
{
return false;
}
}
//view all Customers
}
How can i fix this issues?
Thanks in advance....
You're missing a - in $this->customers>customerslist();
This should be $this->customers->customerslist();
I'm using the CI framework and I'm trying to make a foreach loop so that all products of my site are displayed.
This is my controller file:
class AlleCadeausController extends CI_Controller {
public function index()
{
$this->load->model('allecadeaus_model');
$data['cadeaus'] = $this->allecadeaus_model->get_cadeaus();
$this->load->view('allecadeaus');
}
This is my model file:
<?php
class Allecadeaus_model extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function get_cadeaus()
{
$query = $this->db->query('SELECT * FROM products');
$result = $query->result_array();
return $result;
}
}
this is my view:
<?php
foreach ($cadeaus as $cadeau)
{
echo $cadeau->product_naam;
}
?>
The error is:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: cadeaus
Filename: views/allecadeaus.php
Line Number: 3
Backtrace:
File: /home/ubuntu/workspace/application/views/allecadeaus.php Line: 3
Function: _error_handler
File:
/home/ubuntu/workspace/application/controllers/AlleCadeausController.php
Line: 11 Function: view
File: /home/ubuntu/workspace/index.php Line: 315 Function:
require_once
My table name is products
You havn't passed the $data variable in your controller. Please follow below code:
$this->load->view('allecadeaus', $data);
So, your controller function should be like below.
public function index()
{
$this->load->model('allecadeaus_model');
$data['cadeaus'] = $this->allecadeaus_model->get_cadeaus();
$this->load->view('allecadeaus', $data);
}
Cheers, you are done.
public function index()
{
$this->load->model('allecadeaus_model');
$data['cadeaus'] = $this->allecadeaus_model->get_cadeaus();
$this->load->view('allecadeaus',$data);
}
try this in you controller
You haven't pass data to the view you just load view.
for passing data to view you have to do
$this->load->view('allecadeaus',$data);
Here are good documentation for passing data from controller to view Contact ME
You should pass the data to the view follow the below code:
public function index()
{
$this->load->model('allecadeaus_model');
$data['cadeaus'] = $this->allecadeaus_model->get_cadeaus();
$this->load->view('allecadeaus, $data');
}
You have to pass $data with the view.
$this->load->view('allecadeaus',$data);
You need pass array of data in second argument.
Please use this :
$this->load->view('allecadeaus',$data);
If you load child view in allecadeaus, then you don't need to pass array of data. You can directly access all variables from array of data.
I am having a problem while creating a search form in CodeIgniter - it's showing errors like:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Login::$membership_model
Filename: controllers/login.php
Line Number: 12
Backtrace:
File: C:\xampp\htdocs\Project5_1\CodeIgniter\application\controllers\login.php
Line: 12
Function: _error_handler
File: C:\xampp\htdocs\Project5_1\CodeIgniter\index.php
Line: 315
Function: require_once
Fatal error: Call to a member function getSearchBook() on null in C:\xampp\htdocs\Project5_1\CodeIgniter\application\controllers\login.php on line 12
A PHP Error was encountered
Severity: Error
Message: Call to a member function getSearchBook() on null
Filename: controllers/login.php
Line Number: 12
Backtrace:
My Controller Page is:
<?php
class Login extends CI_Controller{
function search(){
$searchBook = $this->input->post('searchBook');
$data = $this->membership_model->getSearchBook($seachBook);
$this->load->view('main_content',$data);
}
?>
My Model page is:
class Membership_model extends CI_Model{
function getSearchBook($searchBook) {
$this->db->select('*');
$this->db->from('book');
$this->db->like('author',$searchBook);
return $query->result();
}
}
My main_content.php is:
<?php
echo form_open('login/search');
echo form_input('searchBook','Search Book', 'id="searchBook"');
echo form_submit('submit', 'Search');
echo form_close();
?>
<table><th>Title</th></table>
<div>
<?php
// List up all results.
foreach ($results as $val)
{
echo $val['title'];
}
?>
</div>
</body>
It's been a long time since I used CodeIgniter, but from what I remember, you're not loading the model in your Login class constructor. That's why you're getting these two parts of the error:
Message: Undefined property: Login::$membership_model
Message: Call to a member function getSearchBook() on null
Neither the property or the function exist in the Login class if you haven't loaded the membership_model model.
Off the top of my head, I think it needs to be something like this in your Login controller:
<?php
class Login extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->model('membership_model');
}
function search(){
$searchBook = $this->input->post('searchBook');
$data = $this->membership_model->getSearchBook($seachBook);
$this->load->view('main_content',$data);
}
?>
<?php
class Success_model extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
//insert into user table
function get_all()
{
$query = $this->db->get('session'); // = select * from session
return $query->result();
}
}
<?php
class Success extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->helper('url');
$this->load->model('success_model');
}
public function index()
{
$data= $this->Success_model->get_all();
$this->load->view('success_view', $data);
}
}
?>
As You can see this is good, but I have error:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Success::$Success_model
Filename: controllers/success.php
Line Number: 15
Backtrace:
File: C:\xampp\htdocs\session\application\controllers\success.php
Line: 15
Function: _error_handler
File: C:\xampp\htdocs\session\index.php
Line: 292
Function: require_once
Fatal error: Call to a member function get_all() on null in C:\xampp\htdocs\session\application\controllers\success.php on line 15
A PHP Error was encountered
Severity: Error
Message: Call to a member function get_all() on null
Filename: controllers/success.php
Line Number: 15
Backtrace:
I'm looking, and looking, but I dont know what is bad. The good directories are files, other classes are working but this not.
Please help. I'm just tired, because after 2 hours searching mistakes...
For CI v3, afaik
I think I see it:
$data= $this->Success_model->get_all();
Should be:
$data = $this->success_model->get_all(); // Notice the lowercase success_model
PHP variables are case-sensitive where as functions and class names are not.
One more solution would be to change
$this->load->model('success_model');
into
$this->load->model('Success_model');
because then you can use
$data= $this->Success_model->get_all();
This is the most strange error I have seen in my life, because yesterday it was working and I wake up today and it's not working this is the error:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Purchase::$purchase_model
Filename: controllers/purchase.php
Line Number: 67
Here is the controller code
class Purchase extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('purchase_model', 'user_model');
$this->load->helper(array('form', 'url'));
$this->load->library(array('form_validation', 'upload'));
}
function steptwo()
{
if($this->input->post('templateid') == NULL){
redirect('templates');
}
$data =$_POST;
if($this->session->userdata('userName')){
$data['name']=$this->session->userdata('userName');
}else{ $data['name'] = NULL;}
$data['paymentplans'] = $this->purchase_model->GetPplan(array('id_template_type' => $_POST['idtype']));
$this->load->view('step-two', $data);
}
An here is my model code:
class Purchase_Model extends CI_Model
{
function GetPplan($options = array())
{
// Qualification
if(isset($options['id_template_type']))
$this->db->where('id_template_type', $options['id_template_type']);
// limit / offset
if(isset($options['limit']) && isset($options['offset']))
$this->db->limit($options['limit'], $options['offset']);
else if(isset($options['limit']))
$this->db->limit($options['limit']);
// sort
if(isset($options['sortBy']) && isset($options['sortDirection']))
$this->db->order_by($options['sortBy'], $options['sortDirection']);
$query = $this->db->get("template_payment_plan");
if(isset($options['count'])) return $query->num_rows();
if(isset($options['template_payment_planid']) || isset($options['detail']))
return $query->row(0);
return $query->result();
}
}
I already have done this $autoload['libraries'] = array('database', 'session'); so I don't think this was the problem.
If anyone know what can the error be I'll be really grateful
$this->load->model('purchase_model', 'user_model');
Here you load purchase_model that you call user_model, if you want load two models, make this :
$this->load->model('purchase_model');
$this->load->model('user_model');