Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何正确调用codeigniter中的模型?_Php_Codeigniter_Models - Fatal编程技术网

Php 如何正确调用codeigniter中的模型?

Php 如何正确调用codeigniter中的模型?,php,codeigniter,models,Php,Codeigniter,Models,加载模型时,我收到了此通知 A PHP Error was encountered Severity: Notice Message: Undefined property: Users::$select Filename: controllers/users.php Line Number: 11 这是我的控制器(users.php) 这是我的模型(users\u Model.php) 这是我的视图(users

加载模型时,我收到了此
通知

 A PHP Error was encountered

        Severity: Notice

        Message: Undefined property: Users::$select

        Filename: controllers/users.php

        Line Number: 11
这是我的控制器(users.php)


这是我的模型(users\u Model.php)


这是我的视图(users\u View.php)


身份证件
名字
姓
电子邮件ID
密码
性别
电话
地址
是管理员吗


我是CodeIgniter的新手,需要一些帮助来了解我的代码哪里出了问题

将控制器更改为

<?php  
 class Users extends CI_Controller{
 public function index() {  
       //load the database  
       $this->load->database();  

       //load the model  
       $this->load->model('users_model');

       //load the method of model  
       $data['h']=$this->users_model->select_data();  


       //return the data in view  
       $this->load->view('users_view', $data);  
   }  
 }  
?> 

你的模型

<?php  
 class Users_model extends CI_Model  
 {  
  function __construct()  
   {  
    // Call the Model constructor  
     parent::__construct();  
   }  
//we will use the select function  
 public function select_data()  
 {  
 //data is retrive from this query  
 $query = $this->db->get('users');  
 return $query;  
   }  
   }  
?> 

你的观点

<table border="1">  
 <tbody>  
 <tr>  
    <td>Id</td>  
    <td>First Name</td>  
    <td>Last Name</td>  
    <td>E-mail ID</td>  
    <td>Password</td>  
    <td>Gender</td>  
    <td>Phone</td>  
    <td>Address</td>  
    <td>Is Admin</td>  
 </tr>  
 <?php  
 foreach ($h->result() as $row)  
 {  
    ?><tr>  
    <td><?php echo $row->id;?></td>  
    <td><?php echo $row->fname;?></td>  
    <td><?php echo $row->lname;?></td>  
    <td><?php echo $row->email;?></td>  
    <td><?php echo $row->password;?></td>  
    <td><?php echo $row->gender;?></td>  
    <td><?php echo $row->phone;?></td>  
    <td><?php echo $row->address;?></td>  
    <td><?php echo $row->admin;?></td>  
    </tr>  
 <?php } ?>  
 </tbody> 

身份证件
名字
姓
电子邮件ID
密码
性别
电话
地址
是管理员吗

将控制器更改为

<?php  
 class Users extends CI_Controller{
 public function index() {  
       //load the database  
       $this->load->database();  

       //load the model  
       $this->load->model('users_model');

       //load the method of model  
       $data['h']=$this->users_model->select_data();  


       //return the data in view  
       $this->load->view('users_view', $data);  
   }  
 }  
?> 

你的模型

<?php  
 class Users_model extends CI_Model  
 {  
  function __construct()  
   {  
    // Call the Model constructor  
     parent::__construct();  
   }  
//we will use the select function  
 public function select_data()  
 {  
 //data is retrive from this query  
 $query = $this->db->get('users');  
 return $query;  
   }  
   }  
?> 

你的观点

<table border="1">  
 <tbody>  
 <tr>  
    <td>Id</td>  
    <td>First Name</td>  
    <td>Last Name</td>  
    <td>E-mail ID</td>  
    <td>Password</td>  
    <td>Gender</td>  
    <td>Phone</td>  
    <td>Address</td>  
    <td>Is Admin</td>  
 </tr>  
 <?php  
 foreach ($h->result() as $row)  
 {  
    ?><tr>  
    <td><?php echo $row->id;?></td>  
    <td><?php echo $row->fname;?></td>  
    <td><?php echo $row->lname;?></td>  
    <td><?php echo $row->email;?></td>  
    <td><?php echo $row->password;?></td>  
    <td><?php echo $row->gender;?></td>  
    <td><?php echo $row->phone;?></td>  
    <td><?php echo $row->address;?></td>  
    <td><?php echo $row->admin;?></td>  
    </tr>  
 <?php } ?>  
 </tbody> 

身份证件
名字
姓
电子邮件ID
密码
性别
电话
地址
是管理员吗

您对模型方法的调用是错误的。 您应该使用希望在
控制器中使用的方法调用
模型
,如下所示:

$this->load->model('users_model');  
$data['h']=$this->users_model->select();  
编辑:加载模型时,可以发送第二个参数作为模型的重命名。例如:

$this->load->model('users_model', 'select');  
$data['h']=$this->select->select();  

有关加载模型的详细信息,请检查

您对模型方法的调用是错误的。 您应该使用希望在
控制器中使用的方法调用
模型
,如下所示:

$this->load->model('users_model');  
$data['h']=$this->users_model->select();  
编辑:加载模型时,可以发送第二个参数作为模型的重命名。例如:

$this->load->model('users_model', 'select');  
$data['h']=$this->select->select();  

您应该检查以了解有关加载模型的更多信息

不要在控制器中加载数据库,而要在模型中加载数据库。按照MVC的方式,体系结构模型是数据层,所以查询和数据库工作应该局限于模型

视图是应用程序的表示层,主要是“用户所看到的” 控制器是应用程序的逻辑部分,它可以更好地关联视图和模型。所以,所有逻辑工作,如从数据库到表示层加载视图、模型、数据验证、数据处理,以及反之亦然,都应该留在控制器中。 当谈到正确的加载模型时,上面的答案非常好,但也有一些技巧可以让您感兴趣

<?php  
    Class Users extends CI_Controller {
     public function __CONSTRUCT () {
        parent::__CONSTRUCT();
        $this->load->model('user_model');
     }  

     public function index(){  
         //load the method of model  
         $data['h']=$this->user_model->select();  
         //return the data in view  
         $this->load->view('users_view', $data);  
      }  
     }  
     ?> 
以及内部的负载模型。这允许您在整个类上使用模型,而不是在每个函数中加载模型 此外,如果您想要创建多个模型,您可以在阵列中执行此操作

  public function __CONSTRUCT() {
            parent::__CONSTRUCT();
            $this->load->model( array('user_model', 'model_2', 'model_3'));
         } 

不要在控制器中加载数据库,而是在模型中加载。按照MVC的方式,体系结构模型是数据层,所以查询和数据库工作应该局限于模型

视图是应用程序的表示层,主要是“用户所看到的” 控制器是应用程序的逻辑部分,它可以更好地关联视图和模型。所以,所有逻辑工作,如从数据库到表示层加载视图、模型、数据验证、数据处理,以及反之亦然,都应该留在控制器中。 当谈到正确的加载模型时,上面的答案非常好,但也有一些技巧可以让您感兴趣

<?php  
    Class Users extends CI_Controller {
     public function __CONSTRUCT () {
        parent::__CONSTRUCT();
        $this->load->model('user_model');
     }  

     public function index(){  
         //load the method of model  
         $data['h']=$this->user_model->select();  
         //return the data in view  
         $this->load->view('users_view', $data);  
      }  
     }  
     ?> 
以及内部的负载模型。这允许您在整个类上使用模型,而不是在每个函数中加载模型 此外,如果您想要创建多个模型,您可以在阵列中执行此操作

  public function __CONSTRUCT() {
            parent::__CONSTRUCT();
            $this->load->model( array('user_model', 'model_2', 'model_3'));
         } 

更改
$data['h']=$this->select->select()
$data['h']=$this->users\u model->select()@Blinkydamo它起作用了。非常感谢。更改
$data['h']=$this->select->select()
$data['h']=$this->users\u model->select()@Blinkydamo它起作用了。非常感谢。你应该解释一下,而不仅仅是粘贴代码。没关系@GerardCuadras。他给出了正确的答案,也感谢你的建议,我在回答问题时会记住这一点。你应该解释一些事情,而不仅仅是粘贴代码。没关系@GerardCuadras。他给出了正确的答案,也谢谢你的建议,我在回答问题时会记住这一点。好的,我理解。再次谢谢你,好的,我明白了。再次感谢你。谢谢你的指导。我会尝试所有的。谢谢你的指导。我会尝试所有的。