2017-10-22 3 views
0

Ich habe eine Ressource RouteLaravel-Ressource-Speicher-Methode wird umgeleitet Methode zu zerstören

Route::resource('climb-excluded','CexcludedController',['only'=>['store','update','destroy']]);

Und meinen Code im Hinblick auf Daten

<div class="col-lg-4"> 
<form class="form" method="POST" action="{{ route('climb-excluded.store') }}"> 
{{ csrf_field() }} 
<div class="card"> 
    <div class="card-head style-primary"> 
     <header>Add item</header> 
    </div> 
    <div class="card-body floating-label"> 
     <div class="row"> 
      <div class="col-sm-12"> 
       <div class="form-group"> 
        <input type="text" class="form-control" id="name" name="name"> 
        <label for="name">Name</label> 
       </div> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-sm-10 col-sm-offset-1"> 
       <button type="submit" 
         class="btn btn-block btn-success ink-reaction"> 
        Add 
       </button> 
      </div> 
     </div> 
    </div> 
</div> 

A-Taste speichern, um Daten zerstören:

{!! Form::open(array('route'=>array('climb-excluded.destroy', $excluded->id), 
'method'=>'DELETE')) !!} 
<button type="submit" 
    class="btn ink-reaction btn-floating-action btn-sm btn-danger " 
    rel="tooltip" 
    title="Delete"> 
<i class="fa fa-trash-o" aria-hidden="true"></i> 
</button 
{!! Form::close() !!} 

Speichermethode Form Controller:

public function store(Request $request) 
{ 
    $this->validate($request,[ 
     'name' => 'required|max:255' 
    ]); 

    $excluded = new Cexcluded; 
    $excluded -> name = $request->name; 
    $excluded->save(); 
    //redirect to 
    Session::flash('success','New item sucessfully added !'); 
    return back()->withInput(['tabs'=>'second4']); 
} 

Controller Zerstören Methode Form:

public function destroy($id) 
{ 
    $trekExcluded = Cexcluded::find($id); 
    $trekExcluded->tours()->detach(); 
    $trekExcluded ->delete(); 
    Session::flash('success','Item sucessfully deleted !'); 
    return back()->withInput(['tabs'=>'second4']); 
} 

Das Problem/Fehler, den ich bin zugewandt ist I erfolgreich erste Reihe in der Tabelle einfügen. Aber wenn ich nach dem zweiten gehe, wird die Speichermethode irgendwie umgeleitet, um die Methode zu zerstören und löscht auch die erste eingefügte Zeile. Während ich das store method in action-Attribut des Formulars eindeutig deklariert habe.

FYI: Beide Routen existieren in derselben Ansicht/Seite. Zerstört Methode in col-md-8 mit foreach Schleife während Methode speichert in col-md-4

Antwort

0

Seine ganz offensichtlich, dass das Formular nicht über einen einzigartigen name oder id, so dass deshalb die zweite Methode umgeleitet wird, Verfahren zu zerstören. Tun Sie etwas wie das:

cex-store-1 
cex-destroy-1 
+0

Sie meinen hinzufügen ID-Attribut zu bilden? –

+0

Ja. Aber denken Sie daran, dass Sie JS schreiben müssen, um das Destroy-Formular auszulösen. –

+0

Ich möchte diese Aufgabe ohne js –

Verwandte Themen