这是我的表关联代码:

class UserMastersTable extends Table {
  public function initialize(array $config) {
        parent::initialize($config);
        $this->table('user_masters');
        $this->hasOne('person_masters', [
            'className' => 'person_masters',
            'foreign_key'=>'user_master_id',
            'dependent' => true
        ]);
    }
}


在控制器中时,我正在使用:
$ this-> UserMasters-> get($ id);
它仅产生user_masters表数据。
那么我如何也可以获取关联表数据?

最佳答案

使用contain()

从手册中复制粘贴:


  要加载主要模型时,应使用contain(),并且
  其相关数据。虽然contain()将让您应用其他
  加载的关联的条件,您不能约束
  基于关联的主要模型。有关的更多详细信息
  contains(),查看“热切加载关联”。


// In a controller or table method.

// As an option to find()
$query = $articles->find('all', ['contain' => ['Authors', 'Comments']]);

// As a method on the query object
$query = $articles->find('all');
$query->contain(['Authors', 'Comments']);


Read the manual,然后进入尝试和错误驱动的开发!如果您之前已经完成了手册中的教程之一,那么这将是很清楚的。现在也是如此,它们将涵盖更多的基础知识。

10-06 06:12