Я пытаюсь удалить объект без использования форм. Так что я делал импровизацию. Я сделал маршрут:
Route::get('category/destroyMe', ['uses' => 'CategoryController@destroyMe', 'as' => 'category.destroyMe']);
И в представлении я выбираю идентификатор категории, например, так:
<a href="{{route('category.destroyMe', ['id' => $category->id])}}" ></a>
И, наконец, контроллер:
public function destroyMe()
{
$this->destroy(Category::find(Input::get('id')));
return redirect()->back();
}
Вопрос:
Мне было интересно, если есть способ сделать это без моего вспомогательного метода destroyMe()
? Есть ли способ переслать method = 'DELETE'
через HREF или что-то, так что я могу назвать свой маршрут ресурса как category.destroy
без необходимости усложнения?
РЕДАКТИРОВАТЬ:
Я не хочу делать это с помощью форм (поскольку я знаю, как это сделать). Также я не хочу усложнять работу с ajax или некоторыми дополнительными скриптами или чем-то еще. Мне интересно, есть ли чистое решение Laravel Slick, как
<a href="{{route('category.destroy', ['id' => $category->id, 'method' => 'DELETE])}}" ></a>
Попробуй это:
<a href="{{ action('CategoryController@destroyMe', ['id' => $category->id]) }}" ></a>
И действие:
public function destroyMe($id)
{
Category::destroy($id);
return redirect()->back();
}
У меня есть блог, в котором я могу удалять сообщения, и это работает для меня
<a href="{{ route('delete-post', ['post_id' => $post->id]) }}">x</a>
Маршрут:
Route::get('delete/{post_id}', ['uses' => 'PostsController@delete', 'as' => 'delete-post']);
И функция в PostsController
public function delete($id) {
Post::destroy($id);
return redirect()->back()->with(["deleted" => "The post was deleted"]);
}