如何从所有表中获取所有列,包括关联表以及计算字段

时间:2016-08-10 06:17:55

标签: cakephp-3.0

在cakephp 3文件selecting-all-fields-from-a-table

// Only all fields from the articles table including
// a calculated slug field.
$query = $articlesTable->find();
$query
   ->select(['slug' => $query->func()->concat(['title', '-', 'id'])])
   ->select($articlesTable); // Select all fields from articles

我有查询,其中我有5-6表包含加入以带来数据和计算字段。

现在从您的文档示例传递表实例可以带来所有记录以及计算字段。

现在我的问题是,对于所有连接表,我如何将他们的数据与计算列一起使用。

我试图在select中传递连接表类实例,但是我收到了错误。

  

SQLSTATE [42S22]:未找到列:1054未知列' Table2.id'在'字段列表'

首先创建表类实例然后必须在select中传递它们才能够加入连接表数据?

我的查询

        $table2 = TableRegistry::get('Table2');
        $query = $this->table1
            ->find('all')
            ->select(['computed_column' => 'A subquery here'])
            ->select($this->table1)
            ->select($table2)
            ->contain(['Table2','Table3','Table4','Table5'])
            ->where($conditions); 

1 个答案:

答案 0 :(得分:2)

根据您可以使用的相关表格的文档:

->select($this->Table1->Table2)

或者您可以使用

->autoFields(true)

选择所有字段