[英]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.