2016-02-01 2 views
1

Я пытаюсь вставить элемент в таблицу «category» и использовать идентификатор вставленного элемента, чтобы вставить другой элемент в таблицу «подкатегории».Преобразование массива в String Codeigniter 3.0

Это мой код в мой контроллер

public function insertCategory(){ 
    $category = $this->input->post('category'); 
    $subcategory = $this->input->post('subcategory'); 

    $this->form_validation->set_rules('category', 'Category', 'required'); 
    $this->form_validation->set_rules('subcategory', 'Subcategory', 'required'); 

    if($this->form_validation->run() == FALSE){ 
     $this->load->view('ADMIN_ADDCategory'); 
    } 
    else{ 
     $category_id = $this->admin_model->insertCategory($category); 
     $this->admin_model->insertSubcategory($category_id, $subcategory); 
    } 
} 

И это мой код в моей модели

function insertCategory($category){ 
    $data = array(
     'category' => $category, 
     'status' => 1 
    ); 
    $this->db->insert('category', $data); 
    $this->db->select('id'); 
    $this->db->from('category'); 
    $this->db->where('category', $category); 
    $this->db->limit(1); 
    $query = $this->db->get(); 
    return $query->result(); 
} 

function insertSubcategory($category_id, $subcategory){ 
    $data = array(
     'category_id' => $category_id, 
     'subcategory' => $subcategory, 
     'status' => 1 
    ); 
    $this->db->insert('subcategory', $data); 
} 

Однако я получаю эту ошибку

enter image description here

Я уже пробовал использовать $category_id = (array) $this->admin_model->insertCategory($category);, но он все еще не работает

Как преодолеть эту ошибку? Спасибо вам за помощь.

+0

'print_r()' каталог '$ category_id' после вставки категории вы получили массив –

+0

@ShaileshSingh' Array ([0] => StdClass Object ([ id] => 28)) 'это результат, когда i' print_r' '$ category_id' –

+0

' $ this-> admin_model-> insertSubcategory ($ category_id [0] -> id, $ subcategory); 'вызов этого метода –

ответ

1

$this->admin_model->insertSubcategory($category_id, $subcategory);

$ category_id является массивом, таким образом, вы должны сделать это следующим образом:

$this->admin_model->insertSubcategory($category_id[0]->field, $subcategory);

1

Вы должны попробовать это

$this->admin_model->insertSubcategory($category_id[0]->id;, $subcategory); 
1

попробуйте этот код

Модель

public function insert($table, $data) 
{ 

    if($this->db->insert($table,array $data)) 
    { 
    return $this->db->insert_id(); 
    }else 
    return false 
} 

контроллер

public function insertCategory(){ 

    $this->form_validation->set_rules('category', 'Category', 'required'); 
    $this->form_validation->set_rules('subcategory', 'Subcategory', 'required'); 

    if($this->form_validation->run() == FALSE){ 
     $this->load->view('ADMIN_ADDCategory'); 
} 
    else{ 

     $category = $this->input->post('category'); 
     $subcategory = $this->input->post('subcategory'); 

     //data must be an array 
     $data = [ 
      'category' => $category, 
      'status' => '1' 
     ]; 
     $category_id = $this->admin_model->insert('tablename',$data) 
     if($category_id != false) 
     { 
      $data = [ 
       'category_id' => $category_id, 
       'subcategory' => $subcategory, 
       'status' => 1 
      ]; 
      if($this->admin_model->insert('table name', $data) != false) 
      { 
      echo 'success'; 
      //or load your success page 
      }else{ 
      echo 'failed'; 
      //or load your success page 
      } 
     }else{ 
      echo 'failed'; 
     //or load your success page 
     } 
    } 
} 
Смежные вопросы