所以我有这个控制器来运行模型功能
控制器:
public function delete()
{
if ($this->phome_model->delete_expired()) {
$this->session->set_flashdata('pesan', 'Success. Back to '. anchor('program', 'home.', 'class="alert-link"'));
redirect('program/admin/user/sukses');
} else {
$this->session->set_flashdata('pesan_error', 'Error. Back to '. anchor('program', 'home.', 'class="alert-link"'));
redirect('program/admin/user/error');
}
}
这是模特:
public function delete_expired()
{
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_History) >=', 5);
$this->db->delete('tb_medical_history');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Fisik) >=', 5);
$this->db->delete('tb_fisik_jiwa');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Radiologi) >=', 5);
$this->db->delete('tb_radiologi');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Lab) >=', 5);
return $this->db->delete('tb_laboratorium');
}
我在这里尝试做的是删除数据过期的那些多个表(迟到5年)。在模型函数上,我需要检查每个表上的数据是否使用return函数成功删除,并将其传递给控制器以显示消息。但是功能只能返回1次,那么我该如何解决这个问题呢?感谢
答案 0 :(得分:1)
您可以为您的模型使用以下代码:
public function delete_expired()
{
$del = array();
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_History) >=', 5);
$del[] = (bool) $this->db->delete('tb_medical_history');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Fisik) >=', 5);
$del[] = (bool) $this->db->delete('tb_fisik_jiwa');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Radiologi) >=', 5);
$del[] = (bool) $this->db->delete('tb_radiologi');
$this->db->where('YEAR(CURDATE()) - YEAR(Tanggal_Periksa_Lab) >=', 5);
$del[] = (bool) $this->db->delete('tb_laboratorium');
return in_array(false, $del);
}
使用此函数可以将查询的所有返回值存储在数组中。 in_array
函数在false
数组中搜索$del
,如果数组中有false
则表示存在失败的查询。