#laravel
Вопрос:
Привет, парень мой, я только что написал удаление для своего проекта, это выглядит так:
public function projectdelete(Project $project)
{
$project->delete();
return back();
}
Моя форма :
<form action="{{route('project.delete',$project )}}"
method="POST"
onsubmit="return confirm('Are you sure you want to delete the project?')">
@csrf
@method('DELETE')
<button type="submit">Submit</button>
</form>
Маршрут:
Route::delete('/dashboard/project/create/{id}', [
DashboardController::class, 'projectdelete'
])->name('project.delete');
Почему он не удаляется?
Ответ №1:
Проблема в параметре, ваш параметр маршрута {id}
, на контроллере вы используете привязку модели, для привязки модели имя параметра маршрута должно совпадать с вашей моделью {project}
:
Route::delete('/dashboard/project/create/{project}', [
DashboardController::class, 'projectdelete'
])->name('project.delete');
Комментарии:
1. @m0n0l0g Если вы были рады, что ответ решил вашу проблему, пожалуйста, отметьте его как принятый. Вы можете сделать это, щелкнув галочку / галочку под счетом.
Ответ №2:
В файле блейда передайте параметр проекта как, project
а также routes
укажите имя параметра как project
:
Моя форма :
<form action="{{route('project.delete', ['project' => $project])}}" method="POST" onsubmit="return confirm('Are you sure you want to delete the project?')">
@csrf
@method('DELETE')
<button type="submit">Submit</button>
</form>
Маршрут:
Route::delete('/dashboard/project/create/{project}', [DashboardController::class, 'projectdelete'])->name('project.delete');