我搜索了 SO 和 Google,但找不到我需要的东西。
我正在使用 CodeIgniter 2 构建一个简单的事件日历。 根据 CodeIgniter 文档,这是基本的代码结构,它正在工作......
// $data[2] contains the data for day #2, etc.
$data[2] = '<a href="#">event title 1</a>';
$data[8] = '<a href="#">event title 2</a><br/><a href="#">event title 3</a>';
$data[13] = '<a href="#">event title</a>';
$data[24] = '<a href="#">event title</a>';
// {content} in template is where $data is inserted for each day
$prefs = array (
// my calendar options
'template' => '
{cal_cell_content}{day}<br/>{content}{/cal_cell_content}
{cal_cell_content_today}<div class="highlight">{day}<br/>{content}</div>{/cal_cell_content_today}'
);
$this->load->library('calendar', $prefs);
$year = ($year === FALSE ? date('Y') : $year);
$month = ($month === FALSE ? date('m') : $month);
echo $this->calendar->generate($year, $month, $data);
现在是我如何设置我的数据库表...
每个事件都有一个
title
字段并创建$slug
. (~/events/view/title-slug
)每个 Event 都有一个
date
字段,数据格式为mm/dd/yyyy
现在,我正在考虑如何查询特定月份/年份的数据库并提取数据以插入每个$data[]
变量。
看来我需要执行以下操作:
month
在我的数据库表中为、day
和year
.创建新列在验证后获取我的
date
输入数据,并将其保存到date
列中。拆分我的
date
输入数据,并将每个部分保存到month
、day
和year
列中。
然后我会简单地在我的数据库中查询year
& month
,然后遍历这些结果来$data[]
为每个day
.
这是我应该解决这个问题的正确方法吗?date
拥有一列以及month
、day
和列似乎非常多余year
。可以只使用date
( mm/dd/yyyy
) 列吗?太简单?太复杂了?我想避免为用户提供多个字段来输入日期,最终我将拥有一个 jQuery 日期选择器来帮助确保正确的数据格式。
我知道这似乎是一个简单的问题,但我未能在网上找到简单的代码示例。我发现的大多数内容都已过时(CI 而不是 CI2),对于我正在做的事情来说太复杂了,或者使用的日常内容项目的 URI 段已经包含日期(~/events/view/yyyy/mm/dd
)。
编辑:
这就是我的模型目前的设置方式:
return $this->db->get_where('events', array('yyyy' => $year, 'mm' => $month))->result_array();