在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->model_usulan->get_all
是否返回一个以数据为键的数组?如果不是,您的问题将出在加载视图部分,它需要是$this->load->view('usulan/detail_usulan', ['data' => $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中读取数据错误的主要内容,如果未能解决你的问题,请参考以下文章
从表元数据中读取“0.-127”时,Empire db code-gen 双重解析失败