我创建了一个函数 add_items
。我想如果 slug 已经存在于 database
中,那么 form_validation
运行并显示 error message
。如果 slug 存在
就可以正常工作。但主要的问题
是,如果我想insert
new Data
到database
中,显然有不同的database
slug
然后 data
没有被插入。
public function add_items()
{
if($this->input->post()){
if($this->input->is_ajax_request()){
$title = $this->input->post('title');
$url_title = url_title($title);
$this->form_validation->set_rules($url_title,'callback_slug_exists');
if($this->form_validation->run() == FALSE)
{
echo "FAIL::Slug Already Exist::error";
return;
}
$item_price = $this->input->post('item_price');
$item_description = $this->input->post('item_description');
$insertData = array('item_title' =>$title,'item_url'=>$url_title,'item_price' =>$item_price,'item_description'=>$item_description,
'big_pic' =>$image_path."/".$image);
$result = $this->common_model->insert_record('store_items',$insertData);
if($result){
echo "OK::Record Inserted Successfully::success";
return;
}
else {
echo "FAIL::Record Insertion Failled::success";
return;
}
}
}
$this->show('admin/add_items.php');
}
这是 函数 slug_exists()
function slug_exists($slug)
{
$this->common_model->slug_exists($slug);
}
这是模型
function slug_exists($slug)
{
$this->db->where('item_url',$slug);
$query = $this->db->get('store_items');
if ($query->num_rows() > 0){
return true;
}
else{
return false;
}
}
这是 insert_record()
function insert_record($tbl, $data)
{
$this->db->insert($tbl, $data);
return $this->db->insert_id();
}
这是数据库结构
最佳答案
试试这个:您可以直接在数组中发布数据。无需定义。
$insertArray=array(
item_title' =>$this->input->post('title'),
'item_url'=>$this->input->post('url_title'),
'item_price' =>$this->input->post('item_price'),
'item_description'=>$this->input->post('item_description'),
'big_pic' =>$image_path."/".$image);
$this->db->insert('store_items', $insertArray);
关于php - CodeIgniter - 检查数据库中是否已存在 slug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350111/