我是cakephp3
的新人。我试图执行下面的查询,但它显示我错误。
$lifeinsurances = TableRegistry::get('LifeInsurances')->find("all");
$life_insurances = $lifeinsurances->find()
->join([
'table' => 'institutions',
'alias' => 'institutions',
'type' => 'LEFT',
'conditions' => 'institutions.id = LifeInsurances.institute_id',
]);
我修复了之前的查询。现在我只得到一个表数据。
修改
现在我用蛋糕烘焙创建了关联。但是出现了这个时间的新错误。以下是我的代码。
public function index() {
$this->paginate = [
'contain' => ['Institutions']
];
$lifeInsurances = $this->paginate($this->LifeInsurances);
$this->set(compact('lifeInsurances'));
$this->set('_serialize', ['lifeInsurances']);
}
内部服务器错误
如果我删除
$this->paginate = [
'contain' => ['Institutions']
];
$lifeInsurances = $this->paginate($this->LifeInsurances);
错误停止显示
答案 0 :(得分:0)
如果您的表关联设置正确(如果您使用bake
创建代码,则应自动设置),您应该能够简单地说:
$lifeinsurances = TableRegistry::get('LifeInsurances')
->find('all')
->contain(['Institutions']);
答案 1 :(得分:0)
如果要包含工作,则需要在各自的模型中定义关联(如果是cakephp 3.x,则位于表文件夹中)。 由于您说您已经烘焙模型,请确保在相应的模型中定义关系。
这可能是它抛出错误的原因。
通常,当您在数据库中创建了所有表格时,您应该烘焙模型。因为在烘焙模型后添加表不会在新模型中定义关系,您必须明确定义它。
看看这个 - How associations get defined when code is baked in Cakephp
还要检查表中定义的外键的命名约定。 Cakephp使用此命名约定来定义模型之间的关系。
此外,如果您可以发布错误日志,以便找到更准确的问题解决方案,那就太棒了。