Страница не найдена в Laravel

#php #html #laravel-5.2

#php #HTML #laravel-5

Вопрос:

Код в моем файле маршрута выглядит следующим образом :

 Route::delete('/subtask1/delete/{{subtask}}', 'TaskController@subtaskdestroy');
    Route::get('/home', 'HomeController@index');
    Route::get('/redirect/{provider}', 'SocialAuthController@redirect');
    Route::get('/callback/{provider}', 'SocialAuthController@callback');
});
  

Код в файле просмотра:

 <form action="/subtask1/delete/{{1}}" method="POST" style="display: inline-block;">
    {{ csrf_field() }}
    {{ method_field('DELETE') }}
    <button type="submit" id="delete-task-{{$subtask->id }}" class="btn btn-danger btn-xs">
    <i class="fa fa-btn fa-trash"></i>Delete
    </button>
</form>
  

И код на контроллере:

 public function subtaskdestroy(Request $request, Subtask $subtask)
{
    $this->authorize('checkTaskOwner', $subtask);

    $subtask->delete();

    return redirect('/tasks');
}
  

С этим кодом я получаю ошибку, подобную этой:

Sorry, the page you are looking for could not be found.
NotFoundHttpException in RouteCollection.php line 161:

Комментарии:

1. Убедитесь, что ваш маршрут зарегистрирован должным образом. Используйте php artisan route:list | grep "subtask" для просмотра зарегистрированных маршрутов. Также ваше определение маршрута {{subtask}} неверно.

Ответ №1:

Вы ошибаетесь, когда определяете маршрут для удаления. Это должно быть так:

 Route::delete('/subtask1/delete/{subtask}', 'TaskController@subtaskdestroy');
  

Но вы дали:

 Route::delete('/subtask1/delete/{{subtask}}', 'TaskController@subtaskdestroy');
  

Подробнее о параметрах маршрута:

Параметры маршрута Laravel

Ответ №2:

Вы использовали return redirect('/tasks'); в своем контроллере. С помощью этой строки страница будет перенаправлена на route /tasks после успешного удаления данных. Убедитесь, что у вас есть /tasks маршрут в вашем файле маршрута. Пример:

  Route::get('/tasks','YourController@method');