Ich habe Angebote und Dienstleistungen Tabelle.Laravel 5: Kaskade weich löschen
Service (s) ist ein Kind eines Angebotes. Bisher habe ich Funktionalität zum weichen Löschen eines Angebots eingerichtet. Wie würde ich auch die angehängten Dienste löschen? Hier ist mein Code:
Migration Angebote
Schema::create('offers', function(Blueprint $table)
{
$table->increments('id')->unsigned();
...
$table->timestamps();
$table->softDeletes();
});
Migration Services
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');
});
Modell Angebot
use SoftDeletes;
protected $dates = ['deleted_at'];
public function services() {
return $this->hasMany('App\Service');
}
Modell Dienst
public function offer() {
return $this->belongsTo('App\Offer');
}
Delete-Methode
public function destroy($id)
{
$offer = Offer::find($id);
$offer->delete();
}
Vielen Dank für all die Hilfe.
aber diese Lösung funktioniert nicht, wenn Dienste selbst FK hat ... Löschen wird nicht ausgelöst in das Kindmodell –
Ich habe meinen Kopf gegen die Wand geschlagen, warum das für mich nicht funktioniert hat .. herausgefunden, es war weil Es ruft nicht die Methoden 'deleting' und' deleted' auf, wenn ein Aufruf direkt an die Abfrage gesendet wird. Hier sind einige weitere Details und Beispiele, wie es funktioniert: https: // github.com/laravel/framework/issues/2536 # issuecomment-74557441 –