在codeigniter中读取数据错误

Posted

技术标签:

【中文标题】在codeigniter中读取数据错误【英文标题】:error read data in codeigniter 【发布时间】:2016-09-25 03:52:52 【问题描述】:

我有一个必须从数据库读取数据的应用程序。我认为这很简单,但为什么我仍然遇到这样的错误:

遇到 php 错误 严重性:通知 消息:未定义变量:数据 文件名:views/detail_usulan.php

我已尝试修复此代码,但仍无法正常工作。我会告诉你我的代码。我需要你的帮助:(

我的控制器:

function detail_usulan()
        $data = array('model_usulan' => $this->model_usulan->get_all());
        //$this->load->view('usulan/detail_usulan', $data);
        $this->render('usulan/detail_usulan', $data);

我的模型:

class model_usulan extends MY_Model
    function get_all()
        return $this->db->get('usulan_rkau');
    

我的看法:

<?php foreach ($data as $view_data)  ?>
            <tr>
            <th> Tahun : </th>
            <td><?php echo $view_data->tahun; ?></td>
            </tr>

【问题讨论】:

你尝试过任何答案吗? 函数$this-&gt;model_usulan-&gt;get_all是否返回一个以数据为键的数组?如果不是,您的问题将出在加载视图部分,它需要是$this-&gt;load-&gt;view('usulan/detail_usulan', ['data' =&gt; $data]);,因为这是在视图中设置变量命名的原因。 【参考方案1】:

你可以像下面这样在控制器上尝试它,而不是从数组()开始

$data['model_usulan'] = $this->model_usulan->get_all();

$this->load->view('usulan/detail_usulan', $data);

根据您的观点更改此 $data

<?php foreach ($data as $view_data)  ?>
   <tr>
      <th> Tahun : </th>
      <td><?php echo $view_data->tahun; ?></td>
   </tr>
<?php ?>

到数组中的$model_usulan

<?php foreach ($model_usulan as $view_data)  ?>
   <tr>
      <th> Tahun : </th>
      <td><?php echo $view_data->tahun; ?></td>
   </tr>
<?php ?>

注意:你的类名和文件名应该是FIRST大写字母ONLY同样适用于控制器和库等

正如这里所解释的Classnames 和Filenames

文件名:Model_usulan.php

<?php

class Model_usulan extends CI_Model 


也在你的模型函数上尝试

return $this->db->get('usulan_rkau')->result();

或者

$query = $this->db->get('usulan_rkau');

return $query->result();

并且可能会改变这一点

MY_Model 

CI_Model 

【讨论】:

感谢您的帮助,但仍然无法正常工作。他们说变量未定义:(@wolfgang1983 未定义什么变量? 在您看来,您是否像所说的那样将其更改为 $model_usulan 变量未定义模型_usulan,是的,我已经改变了它。但仍然无法工作@wolfgang1983 这可能与您的渲染有关【参考方案2】:

您需要在控制器中进行此更改

function detail_usulan()
    $data['data'] = array('model_usulan' => $this->model_usulan->get_all());
    $this->load->view('usulan/detail_usulan', $data);
    //$this->render('usulan/detail_usulan', $data);

改变你的看法

 foreach ($model_usulan as $view_data) 

希望这会奏效。

【讨论】:

感谢您的帮助,但仍然无法正常工作。他们说变量未定义:(@DilipPatel 我已经尝试了这两个但仍然错误@Dilip Patel 如果你使用渲染方法你需要使用 $this->template->write_view('data', $data); $this->template->render();如果您使用的是 load->view 方法,那么您可以直接传递 $data $this->load->view('usulan/detail_usulan', $data);

以上是关于在codeigniter中读取数据错误的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter框架连接读取MS Access数据库文件

Codeigniter在nodejs中读取会话cookie

Codeigniter 从 Session 读取值或从 URL 参数读取值哪个更快? [关闭]

使用 codeigniter 活动记录获取单个字段输出的值

读取文件codeigniter

在 codeigniter 中切换数据库服务器以进行读写操作。