簡體   English   中英

Codeigniter點火表在一列中組合了2個查詢字段結果

[英]Codeigniter Ignited Table combine 2 query field result in one column

我使用Ignited Table,並且希望將2個歸檔結果合並到一列中。

$this->datatables
            ->select('ci_orders.id,'
                    .'ci_orders.transaction_id,'
                    .'ci_orders.field1,'
                    .'ci_orders.field2,'
                    .'ci_orders.status')
            ->from('ci_orders')
            ->join('ci_users', 'ci_orders.user = ci_users.id')
            ->where('ci_users.id',$userId)
            ->unset_column('ci_orders.id')
            ->add_column('edit', '<a href="' . base_url() . 'cancel_order/$1"><button class="btn btn-danger" type="button"><i class="fa fa-times-circle"></i> Cancel</button>', 'id');

與此查詢,我將有一個像表

---transaction_id---|---field_header1---|---field_header2---|---status---
   some id          |   value1          |   value2          | pending   

我想實現的目標

---transaction_id---|---field_header---|---status---
   some id          |   value1/value2  | pending   

點燃表的able來處理這個嗎?

在查看Ignited-Datatables / application / libraries / Datatables.php上的代碼時,我發現被點燃表的選擇功能實際上使用了codeigniter的活動庫,因此您可以使用mysql的CONCAT(str1,str2,...)函數

/* demo code just to show ,taken from ignited tables*/
public function select($columns, $backtick_protect = TRUE)
{
  foreach($this->explode(',', $columns) as $val)
  {
    $column = trim(preg_replace('/(.*)\s+as\s+(\w*)/i', '$2', $val));
    $this->columns[] =  $column;
    $this->select[$column] =  trim(preg_replace('/(.*)\s+as\s+(\w*)/i', '$1', $val));
  }

  $this->ci->db->select($columns, $backtick_protect);
  return $this;
}

您可以通過添加第二個參數$backtick_protect為FALSE來嘗試這一操作

$this->datatables
     ->select("ci_orders.id,ci_orders.transaction_id,
     CONCAT(ci_orders.field1, '  ', ci_orders.field2) AS ci_orders.field1,
     ci_orders.status",FALSE)
     ->from('ci_orders')
     ->join('ci_users', 'ci_orders.user = ci_users.id')
     ->where('ci_users.id',$userId)
     ->unset_column('ci_orders.id')
     ->add_column('edit', '<a href="' . base_url() . 'cancel_order/$1"><button class="btn btn-danger" type="button"><i class="fa fa-times-circle"></i> Cancel</button>', 'id');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM