我应该犯一个大错误,因为我已经做过好几次了,但我真的不明白为什么删除关联只部分有效:
我的实体是这样声明的:
class SitemessagesTable extends Table {
public function initialize(array $config) {
$this->table('sitemessages');
$this->displayField('title');
$this->addBehavior('Timestamp');
$this->hasMany('SitemessageTitles', [
'dependent' => true,
]);
}
}
class SitemessageTitlesTable extends Table {
public function initialize(array $config) {
$this->table('sitemessage_titles');
$this->displayField('title');
$this->belongsTo('Sitemessages');
$this->hasOne('SitemessageTexts', [
'dependent' => true,
]);
$this->hasOne('SitemessageImages', [
'dependent' => true,
]);
}
}
class SitemessageTextsTable extends Table {
public function initialize(array $config) {
$this->table('sitemessage_texts');
$this->displayField('text');
$this->belongsTo('SitemessageTitles');
}
}
class SitemessageImagesTable extends Table {
public function initialize(array $config) {
$this->table('sitemessage_images');
$this->displayField('image');
$this->belongsTo('SitemessageTitles');
}
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试删除这样的 Sitemessages 实体:
$sitemessage = $this->Sitemessages->get($sitemessage_id);
$this->Sitemessages->delete($sitemessage);
Run Code Online (Sandbox Code Playgroud)
然后Sitemessages和第一级SitemessageTitles实体被删除,但不是第二级SitemessageTexts也不SitemessageImages是。
我不明白,正如医生所说:
删除实体时,也可以删除关联的数据。如果您的 HasOne 和 HasMany 关联配置为从属关系,则删除操作也将“级联”到这些实体。
任何的想法?
问候,
| 归档时间: |
|
| 查看次数: |
1367 次 |
| 最近记录: |