2016-03-22 4 views
0

ich diesen Weg für bearbeiten haben und aktualisierenPatch-Route gibt 404, auch wenn die Strecke definiert ist und existiert

//Designation Details for Staffs 
Route::get('designation/{staffid}', array(
    'as' => 'designation.edit', 
    'uses'=>'[email protected]')); 
Route::patch('designation/update/{staffid}', array(
    'as' => 'designation.update', 
    'uses'=>'[email protected]')); 

Die edit Strecke arbeitet gut mit dem Formular-Modell als:

{!! Form::model($designation, [ 
     'method' => 'PATCH', 
     'route' => ['designation.update', $designation->staffid] 
     ]) !!} 

aber, wenn die Schaltfläche Senden für update geklickt wird, hat es die uRL

http://localhost/hrm/public/designation/update/2 

ein nd führt zu 404. Ich lasse Sie nur wissen, dass alle anderen Routen gut funktionieren. Für einen ähnlichen Fall, eine andere Update-Route:

Route::patch('staff/update/{id}', array(
    'as' => 'staff.update', 
    'uses'=>'[email protected]')); 

funktioniert auch gut. TIA.

UPDATE: Controller-Methode updateDesignation

public function updateDesignation($staffid, Request $request){ 
     /* 
      ** Update for Staff's Designation Information 
     */ 
     $designation= Designation::findOrFail($staffid); 

     $input = $request->all(); 
     //dd($input); 

     $designation->fill($input)->save();  

     return view('staff.editdesignation')->with('designation',$designation)->with('staffid',$staffid); 

    } 
+0

Bitte setzen Sie den updateDesignation Code – BKF

+0

@BKF Ich habe die Frage aktualisiert. Sie können dort die Controller-Methode sehen. –

+0

Haben Sie staff.editDesignation Route eingestellt? – BKF

Antwort

1

anstelle von Patch setzen verwenden können. Das HTML-Formular unterstützt keine Put-, Patch- oder Delete-Optionen. Fügen Sie also dem Formular ein verstecktes Feld _method hinzu.

0

Es gab einen Fehler auf meiner Anfrage

$designation= Designation::findOrFail($staffid); 

$staffid war kein Primärschlüssel, sondern ein Fremdschlüssel. Ich habe es gelöst, indem ich meine Abfrage geändert habe.

$designation = Designation::where('staffid', $staffid)->firstOrFail(); 
+0

ja das findOrFail löst automatisch einen 404 Fehler aus. – Gokigooooks

+0

@Gokigooooks Nicht immer, wenn der Parameter es Primärschlüssel übergeben, ist es immer gut. –

+0

Ja, aber es gibt keine übereinstimmenden Datensätze, die einen 404-Fehler auslösen – Gokigooooks

Verwandte Themen