2011-11-04 55 views
1

我即將實施解析器類到我的codeigniter項目,並希望將數據從模型傳遞到解析器數組。哪種做法更好,效率更高。Codeigniter將數據從模型傳遞到控制器分析程序

我的模型獲取數據並將其返回給控制器。我怎樣才能把它放入控制器的數組中?

型號:

function getSeo($data){ 

    $this->db->select('seo_title, seo_description, seo_keywords'); 
    $this->db->from('content'); 
    $this->db->where($data); 

    $query = $this->db->get(); 

    $data = array(); 

foreach ($query->result() as $row) { 
    $data[] = array(
     'seo_title' => $row->seo_title, 
     'seo_description' => $row->seo_description, 
      'seo_keywords' => $row->seo_keywords 
    ); 
} 

return $data; 

} 

控制器:

 $viewdata['pageseo'] = $this->Content_model->getSeo($data); 

$viewdata = array(
    'seo_title' => 'My seo Title', 
    'seo_description' => 'My seo description', 
    'seo_keywords' => 'My seo keywords', 
    ); 

什麼是從我的模型中的數據爲 '$可視數據' 數組的最佳方式,它怎麼辦????

回答

1

由於模型中的getSeo函數返回一個數組,控制器也會將這些信息存儲到$ viewdata數組中。

如果您嘗試print_r($viewdata),您會看到該結構與預期相符。這是$viewdata['seo_title'] => 'My seo Title'

等等...

1

有一個叫result_array()功能,用於獲取結果集爲陣列和下面的鏈接可以幫助你。這是核心庫功能。

PLZ參閱,

http://codeigniter.com/user_guide/database/results.html 
0

使用模型動態視圖

functiongetData($alias='*',$table,$where='',$join='',$orderBy='',$whereOr='',$groupby='',$limit='') 
{ 

    $this->db->select($alias); 
    $this->db->from($table); 
    if($join!='') 
    { 
     for($i=0;$i<count($join);$i++) 
     { 
      $this->db->join($join[$i]['tableName'],$join[$i]['joinCondition'],$join[$i]['joinType']); 
     } 
    } 

    if($where!='') 
    { 
     foreach($where as $coulmn=>$value){ 
      $this->db->where($coulmn,$value); 
     } 
    } 

    if($whereOr!='') 
    { 
     //print_r($whereOr); 
     foreach($whereOr as $coulmn=>$value){ 
      $this->db->or_where($coulmn,$value); 
     } 
    } 

    if($orderBy!='') 
    { 
     $orderByKey=array_keys($orderBy); 
     $orderByMode=array_values($orderBy); 
     $this->db->order_by($orderByKey[0],$orderByMode[0]); 
    } 

    if($groupby != '') 
    { 
     $this->db->group_by($groupby); 
    } 

if($limit!='') 
    { 
     $limit=explode(',', $limit); 
     if(count($limit)>=2) 
     { 
      $this->db->limit($limit[1],$limit[0]); 
     }else { 
      $this->db->limit($limit); 
     } 
    } 

    $query=$this->db->get(); 
    $result=$query->result(); 
    //echo $this->db->last_query(). "<br>"; 
    return $result; 
} 

To know more click here

獲取數據
相關問題