Laravel 使用onDelete级联

Laravel 使用onDelete级联,laravel,eloquent,laravel-5.2,laravel-5.3,Laravel,Eloquent,Laravel 5.2,Laravel 5.3,我试图在我的应用程序中使用删除级联,也许我做得不对,但我有一个想法,当我删除在我的情况下,一个产品会自动删除与它相关的列 我的情况是: DB: 创建关系并使用级联删除的我的迁移: Schema::table('product_translations', function (Blueprint $table) { $table->foreign('product_id')->references('id')->on('products')->on

我试图在我的应用程序中使用删除级联,也许我做得不对,但我有一个想法,当我删除在我的情况下,一个产品会自动删除与它相关的列

我的情况是:

DB:

创建关系并使用级联删除的我的迁移:

 Schema::table('product_translations', function (Blueprint $table) {
            $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
        });
制作删除产品的控制器:

$product = Product::find($id);
        $product->delete();
        return back();

我建议您以另一种方式尝试根据事件删除。在您的产品模型中添加以下内容

protected static function boot()
{
    parent::boot();

    static::deleting(function($product)
    {
            $product->Translations()->delete();

    });
}

请记住,将hasMany关联添加到产品模型中,作为名为
Translations()

的公共函数,我建议您以其他方式尝试根据事件删除。在您的产品模型中添加以下内容

protected static function boot()
{
    parent::boot();

    static::deleting(function($product)
    {
            $product->Translations()->delete();

    });
}

请记住,将hasMany关联添加到产品模型中,作为名为
Translations()

的公共函数。是否使用软删除?是否使用软删除?如果您使用的是softdelete,则不会删除注册表。您使用的是softdelete吗?您使用的是softdelete吗?如果您使用的是softdelete,则不会删除注册表。您好,我刚刚根据模型中的事件添加了此函数,并且我还具有翻译“hasMany”关系,但给我的错误是:Builder.php第2443行中的BadMethodCallException:Call to undefined method Illumb\Database\Query\Builder::detach()是的,可能是因为detach是为belong而设的,可以是任意try
->dissection()
或只是
->delete()
delete是我在你的回答中所做的,您好,我刚刚根据模型中的事件添加了这个函数,并且我还有翻译“hasMany”关系,但是在Builder.php第2443行中给了我一个错误:BadMethodCallException:Call to undefined method Illumb\Database\Query\Builder::detach()是的,可能是因为detach是为belongtoMany try
->Dissection()
或just
->delete()
delete是我刚才在你的回答中这样做的