2013-11-04 108 views
0

我想通過CodeIgniter教程工作,並且我的新聞頁面不會從foreach循環輸出數據。我得到以下信息:CodeIgniter教程中foreach循環的錯誤

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: news 

Filename: pages/index.php 

Line Number: 1 

A PHP Error was encountered 

Severity: Warning 

Message: Invalid argument supplied for foreach() 

Filename: pages/index.php 

Line Number: 1 

這是我的模型類:

<?php 
class News_model extends CI_Model { 

public function __construct() 
{ 
    $this->load->database(); 
} 


public function get_news($slug = FALSE) 
{ 
if ($slug === FALSE) 
{ 
    $query = $this->db->get('news'); 
    return $query->result_array(); 
} 

$query = $this->db->get_where('news', array('slug' => $slug)); 
return $query->row_array(); 
} 


public function index() 
{ 
$data['news'] = $this->news_model->get_news(); 
$data['title'] = 'News archive'; 

$this->load->view('templates/header', $data); 
$this->load->view('news/index', $data); 
$this->load->view('templates/footer'); 
} 
} 

而且我的控制器:

class News extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('news_model'); 
} 

public function index() 
{ 
    $data['news'] = $this->news_model->get_news(); 
} 


public function view($slug) 
{ 
    $data['news_item'] = $this->news_model->get_news($slug); 

    if (empty($data['news_item'])) 
    { 
     show_404(); 
    } 

    $data['title'] = $data['news_item']['title']; 

    $this->load->view('templates/header', $data); 
    $this->load->view('news/view', $data); 
    $this->load->view('templates/footer'); 
} 

} 

而且第一種觀點:

<h2><?php echo $news_item['title'] ?></h2> 
    <div id="main"> 
     <?php echo $news_item['text'] ?> 
    </div> 
    <p><a href="news/<?php echo $news_item['slug'] ?>">View article</a></p> 

<?php endforeach ?> 

與第二:

<?php 
echo '<h2>'.$news_item['title'].'</h2>'; 
echo $news_item['text']; 

我知道大概有教程其他問題,但似乎沒有幫助我。

謝謝。

+1

函數視圖($ slug)在控制器中定義了兩次 – Arunu

回答

1

在模型中,你已經在構造函數後關閉了你的類。畢竟應該關閉功能。 另外view()被初始化兩次。

+0

您好,謝謝。我做了這些改變,但它仍然不起作用,我得到了同樣的錯誤。感謝您的幫助,我會再次查看我的代碼並檢查是否有其他愚蠢的錯誤。 – Haych