#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');
Подробнее о параметрах маршрута:
Ответ №2:
Вы использовали return redirect('/tasks');
в своем контроллере. С помощью этой строки страница будет перенаправлена на route /tasks
после успешного удаления данных. Убедитесь, что у вас есть /tasks
маршрут в вашем файле маршрута. Пример:
Route::get('/tasks','YourController@method');