Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Model View Controller - Fatal编程技术网

Php 无法访问Codeigniter中的变量

Php 无法访问Codeigniter中的变量,php,codeigniter,model-view-controller,Php,Codeigniter,Model View Controller,Codeigniter框架的新功能。我试图简单地从数据库中读取用户信息,并在视图中的表中显示结果。(我的网站上有6个页面,每个页面我都想显示一些用户数据) 默认控制器: class Pages extends CI_Controller { public function view($page = 'home') { $this->load->helper('url'); $this->load->view('temp

Codeigniter框架的新功能。我试图简单地从数据库中读取用户信息,并在视图中的表中显示结果。(我的网站上有6个页面,每个页面我都想显示一些用户数据)

默认控制器:

class Pages extends CI_Controller {

    public function view($page = 'home') {

        $this->load->helper('url');

            $this->load->view('templates/header');
            $this->load->view('pages/' . $page);
    }

    public function getUsers(){
            $data= array();
            $this->load->model('model_users');
            $data['users'] = $this->model_users->getUsers1();
            $this->load->view('pages/view_users', $data);
        }
}
型号:

class Model_users extends CI_Model {

    function __construct() {                             
        parent::__construct();

    }    
        function getUsers1(){            
        $query = $this->db->query('SELECT * FROM user');
        if($query->num_rows()>0){             
            return $query->result(); 
        } else {
            return NULL;
        }
    }
}
视图:


关于发生此错误的原因和解决方法有何建议?

请将此代码放入控制器中:

$this->load->view('pages/view_users',$data);
那么

您可以这样做:

 public function getUsers(){

            $this->load->model('model_users');
            $users = $this->model_users->getUsers1();
            $this->load->view('pages/view_users', compact('users');
        }
更干净,如果你将来需要改变,这将很容易

和访问您的页面:localhost/your_site/getusers


但是,如果要使用此标准,请使用。因为URL中的“getusers”并不漂亮。

您的代码是正确的。但如果查询返回空结果,则此处的
$users
变为
NULL
,因此在查看时会出现错误。将
if
置于
foreach
之前。请参阅下面的代码

    <table>
     <tr>
         <td><strong>user ID</strong></td>
     </tr>
     <?php
           if(!empty($users)){ foreach ($users as $user) { ?>
     <tr>
         <td><?php echo $user->id; ?></td>
     </tr>
     <?php }}else{ ?>
       <tr>
         <td>No record found</td>
     </tr>
     <?php } ?>
 </table>

首先尝试数组是否给出任何结果

public function getUsers(){
            $this->load->model('model_users');
            $data['users'] = $this->model_users->getUsers1();
            print_r($data['users']);
        }

无法发表评论:/

您将收到错误,因为您正以以下方式从浏览器地址栏直接访问视图文件:

localhost/projectname/page/view_users
请访问控制器的操作,例如:

localhost/projectname/page/getUsers


你也应该读一些关于路线的书

只要比我快几秒钟!!在我当前的代码中已经有你的建议。。。但它不起作用……我已经在问题的末尾键入了错误。谢谢。@Saty,但OP仍然没有得到解决方案。@Irfana删除这个$data=array();和try您正在检查的url是什么?需要使用该行代码来允许加载页面。可能是您的查询没有返回任何记录。我尝试使用您的代码,然后使用localhost/book/getusers,但无效。错误写在问题的末尾。我做了您建议的修改,现在它仍然给出错误,并且显示“未找到记录”。有什么建议吗?@Irfana检查一下你的桌子。有记录吗?@PathikVejani是的,我的表中有记录。@Irfana更改此
return$query->result()
to
return$query->result_array()您也更新了模型了吗?和@PathikVejani:不需要将结果更改为刚刚检查过的结果,数组给出结果并显示表数据。问题是视图页面(view_users.php)没有从controller接收$data。是的,我将在您建议的链接中获得结果,但是我确实丢失了所有引导和模板。我只会在屏幕上获得一个数组,其中包含来自表的用户信息。你应该在标记中写入适当的链接,因为如果我使用localhost/projectname/view\u users,你会觉得我的网站工作正常。。。我只需要找到一种方法,使view_users.php接收$data。有什么建议吗?我有你建议的样式链接。问题是您建议访问我的URL中的函数。。。这样我就不会再访问我的任何页面了!尝试localhost/book/page/getUsers并添加标题视图
公共函数getUsers(){$data=array();$this->load->model('model_users');$data['users']=$this->model_users->getUsers1();$this->load->view('pages/view_users',$data);}
class Model_users extends CI_Model {

function __construct() {                             
    parent::__construct();

}    
    function getUsers1(){            
    $query = $this->db->query('SELECT * FROM user');
        if($query->num_rows()>0){             
            return $query->result(); 
        } else {
            return [];
        }
    }
}
localhost/projectname/page/view_users
localhost/projectname/page/getUsers