Php Codeigniter Ignited表将2个查询字段结果合并到一列中
我使用Ignited Table,我想将2个归档结果合并到一列中Php Codeigniter Ignited表将2个查询字段结果合并到一列中,php,codeigniter,datatable,Php,Codeigniter,Datatable,我使用Ignited Table,我想将2个归档结果合并到一列中 $this->datatables ->select('ci_orders.id,' .'ci_orders.transaction_id,' .'ci_orders.field1,' .'ci_orders.field2,' .'ci_
$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_header---|---status---
some id | value1/value2 | pending
ignited table是否能够处理此问题?在查看代码时,我发现ignited tables的select函数实际上使用了codeigniter的活动库,因此您可以使用mysql的函数
您可以通过将第二个参数$backtick\u 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');
$this->datatables
->选择(“ci_orders.id,ci_orders.transaction_id,
CONCAT(ci_orders.field1',ci_orders.field2)作为ci_orders.field1,
ci_订单状态”,错误)
->from('ci_orders')
->join('ci\u users','ci\u orders.user=ci\u users.id')
->其中('ci_users.id',$userId)
->取消设置列('ci\u orders.id'))
->添加列(“编辑”、“取消”、“id”);
您知道不必使用CI附带的AR库,对吗?如果您想做一些复杂的事情,您可以编写自己的SQL。另外,在哪里定义了unset_列和add_列?这些在数据库类的文档中不存在,它们是DBForge lib(至少是add_列)的一部分。unset_列是Datatable库的一种方法,这将是重要的信息。
/* 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;
}
$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');