Laravel 使用onDelete级联
我试图在我的应用程序中使用删除级联,也许我做得不对,但我有一个想法,当我删除在我的情况下,一个产品会自动删除与它相关的列 我的情况是: DB: 创建关系并使用级联删除的我的迁移: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
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是我刚才在你的回答中这样做的