Laravel 5:级联软删除 [英] Laravel 5: cascade soft delete
本文介绍了Laravel 5:级联软删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我拥有优惠和服务表格。
服务是优惠的孩子。到目前为止,我已经建立了软删除优惠的功能。我还如何软删除附加的服务?这是我的代码:
Service(s) is a child of an offer. So far I have established functionality for soft deleting an offer. How would I also soft delete appended services? Here is my code:
迁移优惠
Schema::create('offers', function(Blueprint $table)
{
$table->increments('id')->unsigned();
...
$table->timestamps();
$table->softDeletes();
});
迁移服务
Schema::create('services', function(Blueprint $table)
{
$table->increments('id');
$table->integer('offer_id')->unsigned();
...
$table->timestamps();
$table->softDeletes();
});
Schema::table('services', function($table)
{
$table->foreign('offer_id')
->references('id')
->on('offers');
});
模特优惠
use SoftDeletes;
protected $dates = ['deleted_at'];
public function services() {
return $this->hasMany('App\Service');
}
模特服务
public function offer() {
return $this->belongsTo('App\Offer');
}
删除方法
public function destroy($id)
{
$offer = Offer::find($id);
$offer->delete();
}
感谢您的帮助。
推荐答案
我已将此代码放在Offer模型中:
I have put this code in Offer model:
protected static function boot() {
parent::boot();
static::deleting(function($offer) {
$offer->services()->delete();
});
}
并添加缺少
use SoftDeletes;
protected $dates = ['deleted_at'];
在服务模式中。
这篇关于Laravel 5:级联软删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文