4

これは私のコントローラーです

<?php
class Site extends CI_Controller{
    public function index(){    
    $this->load->view('home');
    }
}
?>

これは私のモデルです

<?php

class AdminModel extends CI_Model{

//function to get all the questions 

    function getAllQA(){
        $result=$this->db->get('question');
        if($result->num_rows()>0){ //this checks if the result has something if blank means query didn't get anything from the database
        return $result;
        }
        else{
        return false;
        }
    }
}
?>

これは私のビューページです

<form method="get" action="">
        <div id="container">    
            <?php
                $this->load->model('adminmodel');
                if($result=$this->adminmodel->getAllQA()){
                    foreach($result->result() as $rows){
                        echo $rows->question;
                        echo $rows->option1;
                    }
                }
                else{
                    echo "No question found";
                }
            ?>
        </div>
    </form>

そのため、 home.phpページと呼ばれるビューでモデルを呼び出していますが、エラーが表示されていますCall to a member function getAllQA() on a non-objectビューページでメソッドを読み込んで呼び出しています

4

3 に答える 3

0

あなたがそれをしたかどうかわからない。通常、コントローラー内からモデルを呼び出します。あなたの場合は次のようになります。

    class Site extends CI_Controller{
      public function index(){    
        // load your model
        $this->load->model('adminmodel');
        // do your fancy stuff
        $data['allQA'] = $this->adminmodel->getAllQA();
        // here you can pass additional data e.g.
        $data['userdata'] = $this->adminmodel>getuserinfo();
        // pass data from controller --> view
        $this->load->view('home',$data);
      }
    }

$allQA または $userdata にそれぞれアクセスすることで、ビュー ファイル内のデータにアクセスできます。例えば

foreach ($allQA as $qa){
  echo $qa->question . "<br>" . $qa->option . "<br>";
}

またはdiv内のどこか

 <div class="userbadge">
   <?php echo $userdata; ?>
</div>
于 2013-09-07T13:58:35.930 に答える