【发布时间】:2018-05-19 11:02:56
【问题描述】:
我有一个 Tournament 模型,其中包含与 Session 模型的 belongsToMany 关系:
class Tournament extends Model{
public function sessions(){
return $this->belongsToMany(Session::class, 'tournament_has_sessions');
}
}
然后我的会话模型包含与 User 模型的 belongsToMany 关系:
class Session extends Model{
public function users(){
return $this->belongsToMany(User::class, 'session_has_users');
}
}
现在,当我删除锦标赛时,我想用它删除 session_has_users 表中的所有会话和所有信息。
我试过了:
$tournament->sessions()->with('users')->delete(); -- < This
$tournament->sessions()->delete();
$tournament->users()->detach();
$tournament->delete();
但它不起作用。 session_has_users 表中的数据持久化
我意识到我可以这样做:
DB::table('session_has_users')->whereIn('session_id', $this->sessions()->pluck('id'))->delete();
但是有没有更有效/更方便(或者如果不是更有效的话,甚至是替代方法)的方式来实现这一点?
【问题讨论】:
标签: laravel laravel-5 eloquent