【发布时间】:2015-05-15 04:07:33
【问题描述】:
我有一个实体别墅,我希望这个实体包含其他具有相同“复杂”的别墅 (Varchar(255))。
class VillasTable extends Table
{
/**
* Initialize method
*
* @param array $config The configuration for the Table.
* @return void
*/
public function initialize(array $config)
{
$this->table('villas');
$this->displayField('name');
$this->primaryKey('id');
$this->hasMany('Complexs', [
'className' => 'Villas',
'foreignKey' => false,
'propertyName' => 'complexs',
'conditions' => ['Complexs.complex' => 'Villas.complex']
]);
}
}
?>
我不知道这是否可能。我不想在需要这些实体的每个函数中添加一个 find 。另外我想在使用这个新字段的实体中创建一个函数。 ``
【问题讨论】:
-
那么问题出在哪里?
-
在 cakePHP 3 中,我们不能使用 false 作为外键 :'(
-
啊,再看,这是一个
hasMany关联,对,他们不支持禁用外键,因为 ORM 不知道如何收集键并将结果拼接在一起. -
我已经更新了我的答案,它缺少对主键的比较,以避免主记录包含在关联记录中。
标签: php cakephp foreign-keys cakephp-3.0