我正在尝试为我的 DomainTypes view() 函数包含我的 DomainTypes 表的子项,但它抱怨“错误:SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列'Children.domain_type_id'”问题是我的 DomainTypes 表没有 domain_type_id 列。域表可以。这是我的 DomainTypes view() 的代码:
public function view($id) {
if (!$id) {
throw new NotFoundException(__('Invalid DomainType'));
}
$domainType = $this->DomainTypes
->find()
->where(['DomainTypes.id' => $id])
->contain(['Parent', 'Children', 'Affiliates'])
->first();
$this->set(compact('domainType'));
}
关于我的设置。我有 2 个表,域和域类型。两者都使用树行为。
这是域表的初始化代码:
public function initialize(array $config){
parent::initialize($config);
$this->displayField('name');
$this->addBehavior('Tree');
//Associations
$this->hasMany('Children', [
'className' => 'Domains',
]);
$this->belongsTo('Parent', [
'className' => 'Domains',
]);
$this->belongsTo('Affiliates');
$this->belongsTo('DomainTypes');
}
下面是 DomainTypes 表的初始化代码:
public function initialize(array $config){
parent::initialize($config);
$this->displayField('name');
$this->addBehavior('Tree');
//Associations
$this->hasMany('Children', [
'className' => 'DomainTypes',
]);
$this->belongsTo('Parent', [
'className' => 'DomainTypes',
]);
$this->belongsTo('Affiliates');
$this->hasMany('Domains');
}
两者非常相似,但也明确定义了要使用的 className。为什么 Cakephp 3 假设我的 DomainTypes 表上有一个 domain_type_id 列?提前致谢!