通过'删除'下拉列表请求Laravel?

时间:2016-03-16 07:51:29

标签: php laravel drop-down-menu blade

我已经问过类似的事了,但是还没有得到帮助我的东西。所以我很抱歉再次询问..

首先,我创建了一个带有提交按钮的表单,该按钮指示我执行删除路由。表格中有一个“删除”字样。作为一种方法。

{!! 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>

但这个避风港之所以有效,是因为这给了我一个&#39; GET&#39;请求,而不是&#39;删除&#39;。

好吧,现在我被卡住了。我很抱歉再次问这个......

我希望有人可以帮助我。

我的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() !!}

工作但现在我的下拉菜单中有一个真正的按钮..这看起来不太好看。有什么方法可以表明:删除?

1 个答案:

答案 0 :(得分:-1)

你说你的表单有效。所以你可以使用链接代替按钮和简单的JS,如:

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

或者你可以试试:

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