Выпадающий список с запросом «Удалить» в Laravel?

Я уже спрашивал что-то подобное, но не получил ничего, что помогло бы мне. Так что прошу прощения за повторный вопрос..

Сначала я создал форму с кнопкой отправки, которая направляет меня к моему маршруту удаления. В форме был метод «УДАЛИТЬ».

{!! Former::danger_submit('Delete') !!}
{!! Former::horizontal_open()->method('DELETE')->action(action("Test\\TestController@destroythread", $comment->id)) !!}
{!! Former::close() !!}

Это сработало идеально. Это означает, что моя функция контроллера, маршруты и форма не имеют ошибок.

Теперь я решил, что хочу раскрывающийся список. В выпадающем списке должно быть написано: удалить и редактировать. Сосредоточимся на удалении.

Выпадающие ссылки выглядят так:

<ul class="dropdown-menu"> 
<li><a href="#">Edit</a></li> 
<li><a href="#">Delete</a></li></ul> // <- Delete 

Конечно, я не могу поместить свою форму Laravel в этот тег <li>. Вот почему я попытался сделать ссылку, которая направляет меня на мой маршрут удаления laravel.

Как это:

<li><a href="{{ route('destroythread', $comment->id) }}">Delete</a></li>

но это не сработало, потому что это дает мне запрос «GET», а не «DELETE».

Ну, теперь я застрял. Мне очень жаль, что я спрашиваю это снова..

Я надеюсь, что кто-то может мне помочь.

Мой маршрут удаления laravel таков:

Route::delete('/show/{id}', ['as' => 'destroythread', 'uses' => 'Test\\TestController@destroythread']);

и моя функция контроллера такова:

public function destroythread($id) {
    $comment = Comment::query()->findOrFail($id);
    $comment->delete();
    return redirect()->back();
}

Мой последний вопрос об этой проблеме не мог мне помочь. Пользователь сказал, что я могу использовать ajax, но я не очень понимаю, как это работает, и мне это совсем не нравится.

Спасибо за любую помощь!

Отредактируйте ответ @Joost:

                    {!! Former::horizontal_open()->method('DELETE')->action(action("Test\\TestController@destroythread", $comment->id)) !!}
                    <li><button>Delete</button></li>
                    {!! Former::close() !!}

сработало, но теперь в моем раскрывающемся списке есть настоящая кнопка ... это выглядит не очень хорошо. Есть ли способ, что там просто будет стоять: Удалить ?


person ItzMe488    schedule 16.03.2016    source источник
comment
Да, это мой вчерашний вопрос о той же проблеме. Я только слышал, что могу использовать ajax, но я никогда не использовал его и не совсем понимаю.   -  person ItzMe488    schedule 16.03.2016
comment
Вы просто заключаете ссылку в форму и превращаете ее в кнопку. Вы не можете использовать href или ссылку для отправки чего-либо, кроме запроса GET. Как и в @Epodax его ссылка.   -  person Joost    schedule 16.03.2016
comment
не могли бы вы показать мне, как это выглядит? Потому что я пробовал это так, но не понял правильно. Может быть, мой синтаксис был неправильным.   -  person ItzMe488    schedule 16.03.2016
comment
Я обновил свой вопрос тем, как я попробовал его с вашим ответом. Это сработало, но теперь в моем раскрывающемся списке есть кнопка, и это, конечно, выглядит не очень хорошо.   -  person ItzMe488    schedule 16.03.2016
comment
@ ItzMe488 ItzMe488 Тогда просто удалите его стиль с помощью css и настройте его в соответствии со своими потребностями.   -  person Joost    schedule 16.03.2016


Ответы (1)


Вы говорите, что ваша форма работает. Таким образом, вы можете просто использовать ссылку вместо кнопки и простой JS, например:

<a href="#" onclick="document.yourFormName.submit(); return false;">

Или вы можете попробовать:

<a href="#" onclick="parentNode.submit(); return false;">
person Alexey Mezenin    schedule 16.03.2016
comment
оба не работали. Меня перенаправляют на мою страницу 404, если я пытаюсь использовать ее таким образом. - person ItzMe488; 16.03.2016
comment
Пожалуйста, попробуйте {{ link_to_route('destroythread', 'D', $comment->id, ['data-method'=>'delete']) }} - person Alexey Mezenin; 16.03.2016
comment
Я сделал, и это дает мне: NotFoundHttpException:/ Я уже пробовал это с link_to_route:/ - person ItzMe488; 16.03.2016
comment
Вы уверены, что добавили data-method="delete" в ссылку href? - person Alexey Mezenin; 16.03.2016
comment
да, копирую и вставляю - person ItzMe488; 16.03.2016
comment
Можете ли вы опубликовать вывод команды php artisan routes, пожалуйста. Вы можете обновить свой пост, добавив скриншот или скопировав текст. - person Alexey Mezenin; 16.03.2016
comment
Вы не можете добавить атрибут data-method к атрибуту <a>, как указано здесь - person Joost; 16.03.2016