在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);
答案 0 :(得分:2)
根据您可以使用的相关表格的文档:
->select($this->Table1->Table2)
或者您可以使用
->autoFields(true)
选择所有字段