2016-04-17 2 views
0

Я пытаюсь удалить объект без использования форм. Так что я сделал импровизацию. Я сделал маршрут:Laravel href destroy

Route::get('category/destroyMe', ['uses' => '[email protected]', '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, без необходимости усложнения?

EDIT: Я не хочу делать это с помощью форм (как я знаю, как это делается). Я также не хочу усложнять ajax или некоторые дополнительные скрипты или что-то еще. Мне интересно, если есть чистый Laravel пятно раствор как

<a href="{{route('category.destroy', ['id' => $category->id, 'method' => 'DELETE])}}" ></a> 
+0

Возможный дубликат [? CRUD Laravel 4, как связать, чтобы уничтожить] (http://stackoverflow.com/questions/19643483/crud- laravel-4-how-to-link-to-destroy) – Fuzzyma

+0

Этот дубликат не отвечает на мой вопрос – Norgul

+0

У него есть, как минимум, много предложений о том, как сделать вызов на сервер. Кажется, что генерация формы с помощью контроллера формы является наиболее распространенным способом ее выполнения. – Fuzzyma

ответ

1

Попробуйте это:

<a href="{{ action('[email protected]', ['id' => $category->id]) }}" ></a> 

и действие:

public function destroyMe($id) 
{ 
    Category::destroy($id); 
    return redirect()->back(); 
} 
+0

Я предполагаю, что создаст тот же маршрут – Fuzzyma

+0

Мой метод работает, просто хотел сделать его проще – Norgul

+0

Я предполагаю, что мой код - самый простой способ сделать то, что вы хотите. –

0

У меня есть блог, в котором я могу удалить сообщения и это работает для меня

<a href="{{ route('delete-post', ['post_id' => $post->id]) }}">x</a> 

T он маршрутизации:

Route::get('delete/{post_id}', ['uses' => '[email protected]', 'as' => 'delete-post']); 

и функция в PostsController

public function delete($id) { 
    Post::destroy($id); 

    return redirect()->back()->with(["deleted" => "The post was deleted"]); 
}