A PHP Error was encountered Severity: Notice Message: Undefined property: Site::$site_model

爷,独闯天下 提交于 2019-12-24 04:12:10

问题


A PHP Error was encountered

Severity: Notice

Message: Undefined property: Site::$site_model

Filename: controllers/site.php

Line Number: 13

Site Controller site.php Fatal error: Call to a member function delete_row() on a non-object in C:\xampp\htdocs\login\application\controllers\site.php on line 13

My controller->Site.php

<?php 
class Site extends CI_Controller{
    function __construct(){
      parent::__construct();
      $this->is_logged_in();

    }
    function delete(){
      $this->site_model->delete_row();
      $this->index();
    }
    function members_area(){
      $this->load->model('patient_model');
      $data['records'] = $this->patient_model->getAll();
      $this->load->view('members_area', $data);
    }
    function add(){
       $data['main_content'] = 'patient_form';
       $this->load->view('includes/template',$data);
    }
    function is_logged_in(){
       $is_logged_in = $this->session->userdata('is_logged_in');
        if(!isset($is_logged_in) || $is_logged_in != true){
          echo 'Your don\'t have permission to access this page. <a href="../login">Login</a>';
          die();
        }
    }
} 

My model -> site_model.php

class Site_model extends CI_Model{
    function get_records(){
          $query = $this->db->get('patient');
           return $query->result();
    }
    function delete_row(){
          $this->db->where('id', $this->uri->segment(3));
          $this->db->delete('patient');
    }
    function create_member(){
          $new_member_insert_data = array(
          'fname' => $this->input->post('fname'),
          'lname' => $this->input->post('lname'),
          'email' => $this->input->post('email'),
          'address' => $this->input->post('address'),
          'contact' => $this->input->post('contact'),
          'remarks' => $this->input->post('remarks')
    );
    $insert = $this->db->insert('patient', $new_member_insert_data);
    return $insert;
    }
}

My view-> members_area.php

<?php $this->load->view('includes/header');?>

<div id="main">
Welcome Back, <u><?php echo $this->session->userdata('username'); ?>!</u>
<h3>Vision Eye Medical Center Patient Information</h3>

<div id="overflow">
  <table class="features-table">

        <thead>
          <tr>
            <td>Patient Name</td>
            <td>Email</td>
            <td>Address</td>
            <td>Contact</td>
            <td>Remarks</td>
            <td>Action</td>
          </tr>
        </thead>

        <tfoot>
          <tr>
            <td></td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
          </tr>
        </tfoot>          
        <tbody>
        <?php foreach($records as $row): ?>
          <tr>
            <td><?php echo $row->fname;?>
              <?php echo $row->lname;?>
            </td>

            <td><?php echo $row->email;?></td>
            <td><?php echo $row->address;?></td>
            <td><?php echo $row->contact;?></td>      
            <td><?php echo $row->remarks;?></td>      
            <td>View|<?php echo anchor("site/delete/$row->id",'delete');?></td>     
          </tr>

          <?php endforeach; ?>
        </tbody>
    </table>

 </div>   
  <?php echo form_open();?>
     <?php echo anchor('patient/add', 'Add new Data'); ?><?php echo anchor('login/logout', 'Logout'); ?><br>
    <?php echo form_close();?>

</div>
<?php $this->load->view('includes/footer');?>

回答1:


It seems you are not loading your "site model" anywhere in code you can do following:

  1. autoload it in autoload file.
  2. load your model either in constructor of controller, or load it whenever needed by using this line $this->load->model('site_model');

More information can be found here.




回答2:


You need to load model in your controller.

 class Site extends CI_Controller{
            function __construct(){
              parent::__construct();
              $this->is_logged_in();
              $this->load->model('site_model'); //Load site_model
             ........



回答3:


In somecase it happens when you don't extract your form data to the model. Try extract($_POST) in your model and don't forget to load the model properly.

P.s.:this was the solution for my error



来源:https://stackoverflow.com/questions/24849149/a-php-error-was-encountered-severity-notice-message-undefined-property-site

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!