2016-05-25 9 views
0

Ich habe Probleme beim Übergeben eines Arrays von Controller zu Model in Code Igniter zur weiteren Verarbeitung.Übergeben von Array vom Controller zum Modell CodeIgniter

Controller:

public function list_out(){ 

    $this->show_pagination(); 

    $action = array(
     'page'=>'public/'.$this->class_name.'/list', 
     'title'=>'My Title', 
     'success'=>$this->success, 
     'data'=>$this->public_model->my_function(array('make'=>'Apple','color'=>'Black')) 
    ); 

    $this->public_page($action); 
} 

Modell:

public function my_function($arr){  

    $this->db->select('main_tbl.*,image_table.image_url'); 
    $this->db->from('main_tbl');   
    $this->db->join('image_tbl','image_tbl.prod_id=main_tbl.prod_id'); 
    $this->db->where('main_tbl.prod_status',1); 
    $table = 'main_tbl'; 

    for ($i = 0; $i < count($arr); $i++) { 
     $key=key($arr); 
     $val=$arr[$key]; 
     if ($val<> ' ') { 
      $this->db->where($table.'.'.$key,$val); 
     } 
     next($arr); 
    } 

    $this->db->where('image_tbl.image_cover',1); 
    $this->db->order_by('prod_id','desc'); 
    $query = $this->db->get(); 
    return $query->result(); 

} 

Fehler:

Nachricht: key() erwartet Parameter 1 Array, string gegebene Nachricht zu sein: next() erwartet, dass Parameter 1 ein Array ist, String gegeben

Wenn das gleiche Array in my_function() in Model platziert wird, funktioniert es gut.

Ex:

public my_function(){ 

    $arr = array(
     'make'=>'Apple', 
     'color'=>'Black' 
); 

    $this->db->select('main_tbl.*,image_table.image_url'); 
    ........ 


} 

Was hier das Problem sein könnte? Jede Hilfe würde sehr geschätzt werden.

Vielen Dank im Voraus.

Antwort

0

Bitte geben Array wie die

public function list_out(){ 

    $this->show_pagination(); 
    $arr['make'] = 'Apple'; 
    $arr['color'] = 'Black'; 
    $action = array(
     'page'=>'public/'.$this->class_name.'/list', 
     'title'=>'My Title', 
     'success'=>$this->success, 
     'data'=>$this->public_model->my_function($arr) 
    ); 

    $this->public_page($action); 
} 
Verwandte Themen