我有提供的和服务表。
服务是要约的子女。到目前为止,我已经建立了软删除报价的功能。我将如何软删除附加的服务?这是我的代码:
移民提供
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();
}谢谢你的帮助。
发布于 2015-07-20 15:40:31
我已经将这个代码放到了提供模式中:
protected static function boot() {
parent::boot();
static::deleting(function($offer) {
$offer->services()->delete();
});
}再加上失踪
use SoftDeletes;
protected $dates = ['deleted_at'];在服务模型中。
发布于 2015-07-16 14:20:57
为此,您应该使用雄辩的事件。
Offers::deleted(function($offer) {
$offer->services()->delete();
});
Offers::restored(function($offer) {
$offer->services()->withTrashed()->restore();
});发布于 2016-12-25 21:44:17
如果您想在雄辩的模型中获得级联的softDeletes,我强烈建议使用这个库iatstuti/laravel级联软删除
作曲家
// get it with composer.
$ composer require iatstuti/laravel-cascade-soft-deletes="1.0.*"快速示例
在入门样本中提供的。
<?php
namespace App;
use App\Comment;
use Iatstuti\Database\Support\CascadeSoftDeletes;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
use SoftDeletes, CascadeSoftDeletes;
protected $cascadeDeletes = ['comments'];
protected $dates = ['deleted_at'];
public function comments()
{
return $this->hasMany(Comment::class);
}
} https://stackoverflow.com/questions/31456804
复制相似问题