我以可以多次使用的方式编写了以下“插入代码”。因此,无需在模型中写表名,我就可以在控制器中写表名。
模型功能
function insertTable($table, $data) {
$this->db->insert($table, $data);
return $this->db->insert_id();
}
控制器指令
$insert = $this->Model_Action->insertTable('student',$student_data)
但是我也想在下面的代码中做同样的事情。有没有办法将p_id替换为$ id?
型号
function delete_by_id($id)
{
$this->db->where('p_id', $id);
$this->db->delete('parent');
}
控制器
public function student_delete($id)
{
$this->load->model('Model_Action');
$this->Model_Action->delete_by_id($id);
echo json_encode(array("status" => TRUE));
}
答案 0 :(得分:0)
如果要按ID删除“学生”表行,可以使用以下代码。
function delete_by_id($id)
{
$this->db->delete('student', array('id' => $id));
}
如果要按ID删除其他表行:
function delete_by_id($table, $id)
{
$this->db->delete($table, array('id' => $id));
}
答案 1 :(得分:0)
可以。您的模型
WHERE ((SAP_RECORD_T.FirstName) Like "*" & [Forms]![SearchBox_F]![txtFName] & "*")
OR ((SAP_RECORD_T.FirstName) Is Null)
AND ((SAP_RECORD_T.LastName) Like "*" & [Forms]![SearchBox_F]![txtLName] & "*")
OR((SAP_RECORD_T.LastName) Is Null)
然后在控制器的function delete_by_id($column_name, $id){
$this->db->where($column_name, $id);
$this->db->delete('parent');
}
方法中使用它
student_delete
答案 2 :(得分:0)
好吧,您应该使用codeigniter Core Classes。
在文件夹层次结构中,有一个名为core
的文件夹,您可以在其中创建父控制器和模型。
您可以在几乎所有模型中使用我们正在使用的模型的所有功能,例如在此父模型中创建,更新,删除,读取记录并从该模型继承我们的应用程序模型。
在我们的控制器中,我们只需要获取模型名称并使用这些功能。
注意:自2018年以来,我一直使用相同的方式。
答案 3 :(得分:0)
您可以在模型中为可重复使用的插入,删除,编辑方法定义Table_name
。
您可以使用where条件明智地使用条件。
例如。
function get($id='',$name='')
{
if($id >0)
{
$this->db->where('id',$id);
}
}
答案 4 :(得分:0)
控制器:
在控制器中将所需的数据库表名称写入变量$ table。并将变量$ table传递给模型。
型号:
function insertTable($table, $data) {
$this->db->insert($table, $data);
return $this->db->insert_id();
}