【问题标题】:How to fix delete button not working in Laravel 5.7?如何修复删除按钮在 Laravel 5.7 中不起作用?
【发布时间】:2019-03-05 13:47:43
【问题描述】:

我正在尝试在 Laravel 中创建一个删除按钮,但它会将我重定向到一个白页。 这是删除按钮的 html 代码(它是一个图标):

<a class="icon" href="{{ route('capteurs.destroy', $capteur->id)}}" data-balloon="Supprimer" data-balloon-pos="right">
    <i class="fe fe-trash-2" ></i>
</a>

控制器类中的destroy函数:

public function destroy($id)
{
  $capteur = Capteur::find($id);
  $capteur->delete();
  return redirect('/capteurs')->with('success', 'Capteur Supprimé');
}

我应该被重定向到/capteurs 这是这个页面:

相反,我被重定向到这里,而我要删除的元素仍然存在:

编辑:捕获者的路线

Route::resource('capteurs', 'CapteurController');

【问题讨论】:

  • 你能发布路线文件吗? (capteurs 和 capteurs.destroy 应该足够了)
  • @Stormhammer 已编辑!
  • 我稍微编辑了我的答案。可以试试吗?
  • 当您使用路由资源时,删除端点将是DELETE /capteurs/{id},但您将GET 请求发送到/capteurs/{id}

标签: php laravel


【解决方案1】:

我认为你应该为此制作一个表格:

<form method="POST" action="{{ route('capteurs.destroy', $capteur->id)}}"
  @csrf
  @method('DELETE')
  <a class="icon" data-balloon="Supprimer" data-balloon-pos="right">
  </a>
  <button type="submit"><i class="fe fe-trash-2" ></i></button>
</form>

【讨论】:

    【解决方案2】:

    您需要在锚标记周围添加form,接下来您需要的是DELETE 请求而不是GET。你可以试试下面的代码:

    <form action="{{ route('capteurs.destroy', $capteur->id) }}" method="POST">
        {{ method_field('DELETE') }}
        {{ csrf_field() }}
        <button type='submit' class="btn btn-danger" ><i class="fe fe-trash-2" ></i></button>
    </form>
    

    如果您真的希望它与锚标记有关,那么将特定的id 指定给您的锚标记并执行 ajax 请求!

    【讨论】:

      【解决方案3】:

      您当前正在链接到您的销毁页面,就像它是一个 GET 请求,而它应该是一个 POST 请求。如果执行php artisan route:list,它将显示路线信息。

      解决这个问题:

      <form action="{{ URL::route('capteurs.destroy', $capteur->id) }}" method="POST">
          <input type="hidden" name="_method" value="DELETE">
          <input type="hidden" name="_token" value="{{ csrf_token() }}">
          <button><i class="fe fe-trash-2" ></i></button>
      </form>
      

      你可能需要稍微修改一下样式

      【讨论】:

        猜你喜欢
        • 2017-11-27
        • 2019-06-15
        • 1970-01-01
        • 2020-12-03
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多