【问题标题】:error read data in codeigniter在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]);,因为这是在视图中设置变量命名的原因。

标签: php codeigniter read-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同样适用于控制器和库等

正如这里所解释的ClassnamesFilenames

文件名: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);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 2021-09-10
  • 1970-01-01
  • 2017-02-09
  • 2011-06-06
  • 2012-11-26
相关资源
最近更新 更多