Laravel 4.2 MethodNotAllowedHttpException при удалении

Я новичок в Laravel, поэтому у меня есть проект, простой CRUD, но метод удаления не работает, когда я пытаюсь удалить данные, и я действительно не знаю, почему. Это ошибка:

Ошибка:

throw new MethodNotAllowedHttpException($others);

Контроллер:

public function destroy($id)
{
    $project = Project::find($id);
    if($project->user_id==Auth::id()) {
        $project->delete();
        return Redirect::to('/');
    } else {
        Session::flash('message', 'You can't delete this!');
        return Redirect::to('/');
    }
}

Просмотр:

{{Form::open(array('url' => 'project/destroy/'.$p->id, 'method' => 'DELETE'))}}
    {{Form::submit("Delete", array('class' => 't2tButton text-center'))}}
{{Form::close()}}

Маршруты:

Route::post('/project/destroy/{id}', "ProjectController@destroy");

person Oscar Gallo    schedule 12.09.2014    source источник
comment
Вы уверены, что движок PHP не выдает ошибку относительно синтаксиса? Вот этот: 'You can't delete this!' — Вы должны заключить это жало в двойные кавычки ""!   -  person Yang    schedule 12.09.2014
comment
Хороший вопрос, @bad_boy, или убегай от ' в can't вот так can\'t   -  person Dan    schedule 12.09.2014


Ответы (2)


У вас есть маршрут для POST, но не для DELETE.

Попробуйте добавить это к своим маршрутам:

Route::delete('/project/destroy/{id}', "ProjectController@destroy");

Или вы можете изменить свой метод на POST и оставить свой маршрут как есть, но, чтобы он оставался RESTful, вероятно, лучше изменить его на DELETE.

person Dan    schedule 12.09.2014
comment
Точно, это была проблема, хахаха, я только что написал, спасибо в любом случае =). - person Oscar Gallo; 12.09.2014
comment
@bad_boy ему нужно подождать хотя бы 15 минут... но, пожалуйста, прими это время, если это помогло... спасибо - person Dan; 12.09.2014

Я только что понял ответ, ошибка была в этой строке в Routes:

Route::delete('/project/destroy/{id}', "ProjectController@destroy");

метод Route должен быть DELETE

person Oscar Gallo    schedule 12.09.2014