2016-03-22 4 views
0

У меня есть этот маршрут для редактирования и обновленияPatch маршрут дает 404, даже если маршрут определен и существует

//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]')); 

edit Маршрут работает нормально с моделью формы, как:

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

Но, когда кнопка нажата Submit для update, он имеет URL

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

nd приводит к 404. Просто давая вам знать, все остальные маршруты работают нормально. Для аналогичного случая другой маршрут обновления:

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

также работает отлично. ТИА.

UPDATE: Метод контроллера 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

Пожалуйста, укажите код подтверждения – BKF

+0

@BKF. У меня есть вопрос. Вы можете увидеть здесь метод контроллера. –

+0

Вы задали маршрут staff.editdesignation? – BKF

ответ

1

Использование можно использовать ставить вместо пластыря. Форма Html не поддерживает параметры put, patch или delete. Поэтому добавьте скрытое поле _method в форму.

0

Там была моя ошибка запроса

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

$staffid не был первичный ключ, но внешний ключ. Я решил это, изменив свой запрос.

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

да findOrFail автоматически выдает ошибку 404. – Gokigooooks

+0

@Gokigooooks Не все время, если параметр передал первичный ключ, он всегда хорош. –

+0

Да, но нет соответствующих записей, это вызовет ошибку 404 – Gokigooooks