2017-10-01 4 views
0

J'essaie de supprimer Model de la table Model et tous ses commentaires de la table Comments ... mon code actuel supprime le modèle mais pas ses commentaires de l'autre table .. .Supprimer les données de toutes les tables en utilisant Load() Laravel 5.5

Voici ma détruire la fonction

public function destroy(Request $request,CadModel $cadmodel) 
    { 
     $cadmodel->load('comments')->delete(); 
     $request->session()->flash('message.level', 'success'); 
     $request->session()->flash('message.content', 'File Deleted Successfully!'); 
     return redirect()->route('dashboard'); 
    } 

Voici la relation i défini dans la CadModel Laravel modèle ...

public function comments() 
    { 
     return $this->hasMany(Comment::class); 
    } 

S'il vous plaît Répondre et me proposer une solution pour supprimer both..Mod el et ses commentaires

+0

Vous pouvez utiliser Eloquent. Vérifiez ce https://stackoverflow.com/questions/14174070/automatically-related-related-rows-in-laravel-eloquent-orm – kawadhiya21

+0

J'ai besoin d'une solution sans utiliser Eloquent .. – ma123456

+0

vous aurez besoin d'écrire votre propre solution je suppose – kawadhiya21

Répondre

0

Dans votre migration, définissez les commentaires associés à supprimer si le modèle est supprimé avec onDelete('cascade').

Exemple:

/** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('comments_model', function(Blueprint $table) 
     { 
      $table->increments('id'); 
      $table->integer('comment_id')->unsigned(); 
      $table->integer('model_id')->unsigned(); 

      $table->foreign('comment_id')->references('id')->on('comments')->onDelete('cascade'); 
      $table->foreign('model_id')->references('id')->on('models')->onDelete('cascade'); 
     }); 
    }