删除模型时,如何删除laravel中的子模型的多态模型

问题描述 投票:0回答:1

假设我有5个型号,型号A,B,C,D,E。enter image description here

A migration 
    function up() {
        $table->increments('id');
    }


B migration 
    function up() {
        $table->increments('id');
        $table->integer('a_id')->unsigned();

        $table->foreign('a_id')
              ->references('id')
              ->on('as')
              ->onDelete('cascade')
              ->onDelete('cascade');
    }

C migration 
    function up() {
        $table->increments('id')
        $table->integer('b_id')->unsigned();

        $table->foreign('b_id')
              ->references('id')
              ->on('as')
              ->onDelete('cascade')
              ->onDelete('cascade');
    }

c也与D,E具有多态关系

删除一个。 b和c由于级联而删除。但相关模型e或f不会删除。我该如何实现它。

database laravel
1个回答
0
投票

你可以覆盖类C delete方法并在那里做逻辑:

public function delete() {
   set e to Collection<E>;
   set d to Collection<D>;
   if parent::delete() is true
       remove e;
       remove d;

}
© www.soinside.com 2019 - 2024. All rights reserved.