【问题标题】:How to get all column from all tables including associated table along with computed field如何从所有表中获取所有列,包括关联表以及计算字段
【发布时间】:2016-08-10 06:17:55
【问题描述】:

在 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); 

【问题讨论】:

    标签: cakephp-3.0


    【解决方案1】:

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

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

    或者你可以使用

    ->autoFields(true)
    

    选择所有字段

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多