我需要在我的简单博客网站上为我的存档页面创建分页,使用codeigniter从头开始构建。
我的帖子表是这样的:
id_post | title content | post_date | id_user
我已成功创建基于monthyear的存档列表
结构是这样的:
2012年10月
2012年11月
2012年12月
2013年1月
2013年2月
但我需要在年份上显示存档,所以它必须是这样的:
2012年1月
2012年2月
标题 - 内容 2012年3月
标题 - 内容
2012年4月
2012年5月
2012年6月
,下一页是2013年,2014年,2015年..
到目前为止,这是我用于测试结果数据的控制器和模型:
控制器:
$this->load->model('model_test');
$arsip = $this->model_test->get_all();
//print_r($arsip);
foreach ($arsip as $time_period => $news_items)
{
//display bulan tahun atau display period yang udah di tentuin di model
echo '<div class="date">' . $time_period . '</div>';
echo '<ul class="press">';
//print_r($news_items);
//display looping judul, content
foreach ($news_items as $item)
{
echo '<li>';
echo $item->title.' - '.$item->content;
echo '</li>';
}
echo '</ul>';
echo '</div>';
}
模型:
function get_all()
{
$this->db->select('
id_post,
title,
content,
post_date,
');
$this->db->from('posts');
$this->db->order_by('YEAR(post_date), MONTH(post_date)', 'asc');
$hasil = $this->db->get();
if( $hasil->num_rows() > 0)
{
$news_array = array();
foreach($hasil->result() as $arsip){
$time_period = date("F Y", strtotime($arsip->post_date));
if (!isset($news_array[$time_period]))
{
// buat sub array kalo butuh
$news_array[$time_period] = array();
}
$news_array[$time_period][] = $arsip;
}
return $news_array;
}
}
任何想法如何创建一年的分页基础?请..
问候。
答案 0 :(得分:0)
您应该向模型发送一个year
参数,并通过YEAR在sql上添加where条件。您可以从输入获得year
。
您的控制器;
$this->load->model('model_test');
$year = $this->input->get('year');
$arsip = $this->model_test->get_all($year);
...
您的模型;
function get_all($year = null){
$this->db->select('id_post,title,content,post_date');
$this->db->from('posts');
if (null !== $year){
$this->db->where('YEAR(date(post_date))', $year)
}
$this->db->order_by('YEAR(post_date), MONTH(post_date)', 'asc');
$hasil = $this->db->get();
if( $hasil->num_rows() > 0)
{
$news_array = array();
foreach($hasil->result() as $arsip){
$time_period = date("F Y", strtotime($arsip->post_date));
if (!isset($news_array[$time_period]))
{
// buat sub array kalo butuh
$news_array[$time_period] = array();
}
$news_array[$time_period][] = $arsip;
}
return $news_array;
}
}
您的视图;
<ul>
<li><a href="?year=2013">2013</a></li>
<li><a href="?year=2014">2015</a></li>
<li><a href="?year=2015">2015</a></li>
<li><a href="?year=2016">2016</a></li>
<li><a href="?year=2017">2017</a></li>
</ul>