Laravel:如何为每个按钮创建一个包含一个动作的表单

时间:2017-03-25 13:05:19

标签: php html laravel

我有一张表格:

<form action="caption/{{$caption->id}}" method="delete">
    <p value='{{$caption->id}}'>{{$caption->content}}</p>
    <button type="submit">Delete caption</button>
    <button type="submit" formaction="<SEND A PUT TO CAPTION/CAPTION_ID>">Accept caption</button>
</form> 

此表单处理删除或批准我网站上图片的未经批准的字幕。我已设置表单,以便在DELETE被按下时caption/caption_id发送到Delete button

现在,按下Accept caption - 按钮后,我希望$caption->approved字段设置为1(默认情况下为0)。我已经想到了如何做到这一点,我提出的解决方案(我不知道如何实现)是这样的:

按下接受后,让网站向POST发送caption/caption_id请求。然后由路由处理POST,路由将其发送到控制器,在那里我做我需要做的事情。

问题:

  1. 如何实施此解决方案?
  2. 如果我的解决方案不切实际或愚蠢,那么什么是更好的解决方案?
  3. THX

1 个答案:

答案 0 :(得分:0)

您是否可以使用两个按钮发送请求,每个按钮都有一个具有所需目标操作和方法的表单?

{{ $caption->content }}
<form action="caption/{{ $caption->id }}" method="POST">
    <button type="submit">Approve</button>
</form>
<form action="caption/{{ $caption->id }}" method="POST">
    <input name="_method" type="hidden" value="DELETE"/>
    <button type="submit">Reject</button>
</form>

这种方法意味着您不需要使用JavaScript。