2016-11-14 30 views
0

我试图使用CodeIgniter创建一个显示一些文章的Web应用程序。 我从数据库中提取所有文章,它们被用作预览。 现在我想创建一个显示单个文章的页面。 文章的预览显示在/用品/,我想展现一个单一的文章中/用品/读/ IDCodeIgniter - 单一结果

这是我的代码:

控制器

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Articles extends CI_Controller 
{ 

    public function index() 
    {    
     $this->load->model('articles_model'); 

     $articles_data['data'] = $this->articles_model->select_articles(); 

     $this->load->view('header'); 

     $this->load->view('nav'); 

     $this->load->view('articles-content', $articles_data); 

     $this->load->view('footer'); 

    } 

    public function read() 
    { 
     //????? 
    } 

型号

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Articles_model extends CI_Model 
{ 

    public function select_articles() 
    { 
     $this->db->select('*'); 
     $this->db->from('articles'); 
     $this->db->join('authors', 'articles.id_author = authors.id_author', 'left'); 
     $this->db->join('images', 'articles.id_image = images.id_image', 'left'); 
     $query = $this->db->get(); 
     return $query->result_array(); 

    } 

} 

查看

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
?> 
<div id="content"> 
    <div id="articles"> 
     <?php foreach($data as $row){ 
     $limited_article = word_limiter($row['article_text'], 200); 
     ?> 
     <section class="article"> 
     <h2><?php echo $row['article_title'];?></h2> 
     <img class="article-image" src="<?php echo base_url('/assets/images/' . $row['image']) ;?>"> 
     <p class="info">Author: <?php echo $row['author']; ?> Date: <?php echo $row['article_data'] ?></p> 
     <p><?php echo $limited_article; ?></p> 
     </section> 
     <?php }?> 
    </div> 
</div> 

我该怎么办?提前致谢!

回答

0

将一个参数($id)您read($id)方法控制器:

public function read($id) { 
    $this->load->model('articles_model'); 

    $data['article'] = $this->articles_model->get_select_articles($id); 

    $this->load->view('header'); 
    $this->load->view('nav'); 
    $this->load->view('articles-single', $data); 
    $this->load->view('footer'); 
} 

在你的模型像波纹创建新方法get_select_articles()

class Articles_model extends CI_Model 
{ 
    public function get_select_articles($id){ 
     $this->db->select('*'); 
     $this->db->from('articles'); 
     $this->db->join('authors', 'articles.id_author = authors.id_author', 'left'); 
     $this->db->join('images', 'articles.id_image = images.id_image', 'left'); 
     $this->db->where('articles.id', $id); 
     $query = $this->db->get(); 
     return $query->row_array(); 
    } 
} 

的节目单篇文章的数据创建一个新的页面articles-single.php在视图文件夹中。我在articles-single.php中使用了$article['article_details'];查看文章详细信息。您将使用article_details或根据您的db字段名称的一些想法。

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
?> 
<div id="content"> 
    <div id="articles"> 
     <section class="article"> 
      <?php if($article) { ?> 
      <h2><?php echo $article['article_title'];?></h2> 
      <img class="article-image" src="<?php echo base_url('/assets/images/' . $article['image']) ;?>"> 
      <p class="info">Author: <?php echo $article['author']; ?> Date: <?php echo $article['article_data'] ?></p> 
      <p><?php echo $article['article_details']; ?></p> 
      <?php } ?> 
     </section> 
     <?php }?> 
    </div> 
</div>