2

我有以下简单代码:模型:

function get_last_ten_entries()         
{
    $this->db->get('property');
}

控制器:

public function load_recent()
{
    $data['info'] = $this->propertymodel->get_last_ten_entries();
    $this->load->view('load_property', $data);
}

看法:

<?
echo $data['id'];
?>

这是行不通的。确定我做错了什么,因为显示的错误说

遇到 PHP 错误

严重性:通知

消息:未定义变量:数据

文件名:views/load_property.php

行号:2

属性是数据库中的一个表,其中有一个名为 id 的字段。怎么了?

谢谢你们

4

2 回答 2

4

要修复错误,您需要$info在视图中使用,而不是$data控制器中的数组索引对应于视图中的变量。

$this->db->get('property')返回 table 中的所有行property,但您的函数名称表明您正在尝试获取最后 10 个条目。我建议您阅读CodeIgniter 的 Active Record 文档以获取更多信息。你还需要return你的查询。

您需要从查询中生成结果。CodeIgniter 的查询结果文档提供了有关如何使用查询结果的有用信息。您要实现的目标有点模糊,但您的代码可能如下所示:

模型

function get_last_ten_entries()         
{
    return $this->db->get('property');  //Perform query (you'll need to update to select what you actually want from you database)
}

控制器

public function load_recent()
{
    $data['last_entries'] = $this->propertymodel->get_last_ten_entries();
    $this->load->view('load_property', $data);
}

看法

foreach ($last_entries->result_array() as $entry)
{
   echo $entry['id'];
}

或者,如果您更愿意使用对象而不是数组:

foreach ($last_entries->result() as $entry)
{
   echo $entry->id;
}
于 2012-09-16T11:09:43.627 回答
2

首先,您在模型中的函数不会返回任何内容。试试这个:

function get_last_ten_entries()         
{
    $result = $this->db->get('property');
    return $result->result_array();
}

当你修复它时,你的视图中将有变量 $info 可用,因为 Codeigniter 将给定的数组评估为不同的变量load->view( $view, $givenarray);

例子

$data['variable1'] = 'first var';
$data['array'] = array('id' => 1, 'name' => 'myname' );
$this->load-view('view', $data);

将让您在视图文件中使用变量,如下所示

echo $variable1; // echoes 'first var';
echo $array['name']; // echoes myname
于 2012-09-16T11:12:29.103 回答