【发布时间】:2015-06-30 09:40:39
【问题描述】:
我有一个代表用户报告的模型。报表模型具有多态关系,可以包含配方或评论。
目标是能够删除评论或用户,并让 eloquent 删除相关报告。
使用我当前的设置(见下文),这不起作用,删除评论时报告仍然存在并导致错误,因为它现在指向不存在的评论。
我做错了什么?我的多态模型是否需要“belongsTo”关系?如果是这样,当关系是可变形的时,我该如何建立这种关系?
型号
多态模型
class Report extends Model {
public function reportable() {
return $this->morphTo();
}
public function User() {
return $this->belongsTo('App\User');
}
}
配方模型
class Recipe extends Model {
public function user() {
return $this->belongsTo('App\User');
}
public function reports() {
return $this->morphMany('App\Report', 'reportable');
}
}
评论模型
class RecipeComment extends Model {
public function user() {
return $this->belongsTo('App\User');
}
public function reports() {
return $this->morphMany('App\Report', 'reportable');
}
}
【问题讨论】:
标签: php laravel laravel-5 polymorphism eloquent