因此,我创建了一个类似于WordPress使用的标记系统。
我目前正在尝试使用帖子的编辑方法来修改我的实际代码。
假设我有两个表:
实际的行为是我从条件表中获取了条件,但是只有它们存在时才会获取。
我想像WordPress所使用的那样完全编辑系统。...能够直接从输入中添加新术语(如果不存在)。
这是我的Controller编辑方法中的内容:
// Get attached categories
$categories = array();
$categories[0] = 'Select Categories';
$categories_attached = $this->Post_model->the_categories($id);
if (is_array($categories_attached) || is_object($categories_attached))
{
foreach ($categories_attached as $cat)
{
$categories[$cat->term_id] = $cat->term_id;
}
}
$data['categories'] = $categories;
// Select Categories
$categories_options = array();
$categories_options[0] = 'Select Categories';
$categories_list = $this->Terms_model->get_list();
foreach($categories_list as $cat){
$categories_options[$cat->term_id] = $cat->title;
}
$data['categories_options'] = $categories_options;
如您所见,一种方法是将附加的类别提取到特定帖子,而第二种方法是从术语表中获取类别(如果使用的话)。
我也有这个:
// Add/Remove term relationship
$this->Post_model->updateCats($id, $this->input->post('cat_id[]'));
转到我的Post模型,如果我取消选择其中任何一个类别,则将杀死其中的类别:
这是编辑帖子:
// Add/Remove categories
public function updateCats($id, array $arrSkills)
{
//in case if the array is empty you can stop the process here
if (empty($arrSkills)) {
return false;
}
//kill all associated items
$this->db->where('post_id', $id);
$this->db->where('type', 'category');
$this->db->delete('ci_relationship');
//insert all items
$arrInsertData = [];
foreach($arrSkills as $strSkill)
{
$arrInsertData[] = [
'post_id' => $id,
'term_id' => $strSkill,
'status' => 'attached',
'type' => 'category'
];
}
$this->db->insert_batch('ci_relationship', $arrInsertData);
return true;
}
任何想法如何实现我的想法?