php - CodeIgniter - 检查数据库中是否已存在 slug

标签 php codeigniter

我创建了一个函数 add_items。我想如果 slug 已经存在于 database 中,那么 form_validation 运行并显示 error message。如果 slug 存在 就可以正常工作。但主要的问题是,如果我想insertnew Datadatabase中,显然有不同的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();
    }

这是数据库结构

enter image description here

最佳答案

试试这个:您可以直接在数组中发布数据。无需定义。

$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/

相关文章:

php - 适用于 PHP 5.2 的 CodeIgniter 的 PHP ORM

mysql - 代码点火器动态路由

php - 需要在 CodeIgniter 3 中使用 MySQL 表创建图表

php - 如何衡量密码的强度?

php - 从特定的给定时间 PHP 中减去秒数

php - 如何在 iis 服务器上启用 mod_rewrite

javascript - 如何使用 PHP + JS 重新加载页面并显示查询参数?

php - 将变量从 MY_Controller 传递到 View

php - 处理跨多个模型文件的代码点火器中的事务

php - 使用 PHPSESSID 值访问 session 数据