2011-02-14 56 views
0

我是CodeIgniter的新手,并且无法使用ActiveRecord语法加载简单数据库表(名为'entries')的内容 - 我正在获取空白页面。无法加载数据库表的内容与ActiveRecord

这里是我的控制器:

class Blog extends CI_Controller { 
    function Blog() { 
     parent::__construct(); 
    } 

    function all() { 
     $this->load->model('Entries'); 
     $data['rows'] = $this->Entries->load_all(); 
     $this->load->view('view_all', $data); 
    } 
} 

型号:

class Entries extends CI_Model { 
    function __construct() { 
     parent::__construct(); 
     $this->load->database(); 
    } 

    function load_all() { 
     $query => $this->db->get('entries'); 
     return $query->result(); 
    } 
} 

查看:

<ol> 
    <? foreach($rows as $row): ?> 
     <li><?= $row->title ?></li> 
    <? endforeach; ?> 
</ol> 

注:我可以得到它,如果我改变load_all的数据类型的工作( )在我的模型中的功能:

function load_all() { 
    $sql = "SELECT * FROM entries"; 
    $query = $this->db->query($sql); 
    return $query->result_array(); 
} 

而且我认为到:

<ol> 
    <? foreach($rows as $row): ?> 
     <li><?= $row['title'] ?></li> 
    <? endforeach; ?> 
</ol> 

有什么想法,为什么ActiveRecord的语法不工作?

FYI:CodeIgniter 2.0,MySQL,PHP 5.3.2。哦,config/database.php中的$ active_record设置为TRUE。

谢谢。

回答

3

在你load_all的数据类型()函数,你有一个放错地方后“=>” $查询。它应该是'='

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

然后你可以返回你的$查询对象。

return $query->result(); 

在另一个说明中,调用模型时不需要使用大写字母。即使模型名称可能大写,对象函数调用也允许为小写。如果你使用大写,你的代码不会中断,你只是不需要。

+0

啊傻了!谢谢! – cravr 2011-02-15 20:59:36

0

我认为你需要告诉你的观点,即查询结果需要提取:

<ol> 
    <? foreach($rows->result() as $row): ?> 
     <li><?= $row->title ?></li> 
    <? endforeach; ?> 
</ol>