delete 这是销毁函数 public function destroy($i-6ren">
gpt4 book ai didi

laravel - 删除链接而不是按钮 laravel

转载 作者:行者123 更新时间:2023-12-05 08:26:10 28 4
gpt4 key购买 nike

我有一个链接到销毁按钮的删除链接

<i class="icon-trash"></i>
<a style="color:black" href="route{{ action('TasksController@destroy', ['id' => $task->id ,'method'=>'DELETE'] ) }}">
delete
</a>

这是销毁函数

public function destroy($id)
{
//delete task
$task = Task::find($id);
$task->delete();

return redirect('/home')->with('success', 'Task deleted successfully');
}

但点击后链接不起作用

最佳答案

Blade语法不正确,改成

<i class="icon-trash"></i>
<a style="color:black" href="{{ route('tasks.destroy', ['id' => $task->id]) }}">
delete
</a>

需要这样的路由

Route::get('/tasks/delete/{id}', 'TasksController@destroy')
->name('tasks.destroy');

还有这样的 Controller 方法

public function destroy($id)
{
// delete task
$task=Task::find($id);
$task->delete();
return redirect('/home')->with('success','Task deleted successfully');
}

注意:

使用 get 方法来删​​除是一个安全漏洞,因为任何人都可以通过提供链接来欺骗其他用户删除任务

改成post方法

编辑:

这里有一些改进代码的建议

更改您的 HTML 以执行发布请求

<i class="icon-trash"></i>
<a style="color:black"
href="{{ route('tasks.destroy', ['task' => $task]) }}"
onclick="event.preventDefault();
document.getElementById('delete-form-{{ $task->id }}').submit();">
delete
</a>

<form id="delete-form-{{ $task->id }}" action="{{ route('tasks.destroy', ['task' => $task]) }}"
method="POST" style="display: none;">
@csrf
</form>

具有路由模型绑定(bind)的路由

Route::get('/tasks/delete/{task}', 'TasksController@destroy')
->name('tasks.destroy');

带有依赖注入(inject)的 Controller 方法

public function destroy(Task $task)
{
// delete task
$task->delete();
return redirect('/home')->with('success','Task deleted successfully');
}

关于laravel - 删除链接而不是按钮 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57792568/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com