Sto avendo offerte e servizi tabella.Laravel 5: cascata soft delete
Il/i servizio/i è figlio di un'offerta. Finora ho stabilito le funzionalità per la cancellazione soft di un'offerta. Come dovrei eliminare anche i servizi aggiunti? Qui è il mio codice:
migrazione Offerte
Schema::create('offers', function(Blueprint $table)
{
$table->increments('id')->unsigned();
...
$table->timestamps();
$table->softDeletes();
});
servizi di migrazione
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');
});
modello di offerta
use SoftDeletes;
protected $dates = ['deleted_at'];
public function services() {
return $this->hasMany('App\Service');
}
Service Model
public function offer() {
return $this->belongsTo('App\Offer');
}
metodo Delete
public function destroy($id)
{
$offer = Offer::find($id);
$offer->delete();
}
Grazie per tutto l'aiuto.
ma questa soluzione non funziona se i servizi stessi hanno FK ... L'eliminazione non viene attivata nel modello figlio –
Ho sbattuto la testa contro il muro sul motivo per cui questo non ha funzionato per me .. Scoprì che era perché non chiama i metodi 'delete' e' deleted' quando effettua direttamente una chiamata alla query. Ecco alcuni altri dettagli ed esempi su come farlo funzionare: https: // github.it/laravel/framework/issues/2536 # issuecomment-74557441 –