Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter Ignited表将2个查询字段结果合并到一列中_Php_Codeigniter_Datatable - Fatal编程技术网

Php Codeigniter Ignited表将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_

我使用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_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');