@extends('layouts.app')
@section('content')
<ul>
@foreach ($posts as $post)
<li>
<a href="{{route('posts.show', $post->id)}}">
{{$post->title}}
</a>
 
<a href="{{route('posts.edit', $post->id)}}">
Edit
</a>
 
<a href="{{route('posts.destroy', $post->id)}}">
Delete
</a>
@endforeach
</ul>
@endsection
我是 laravel 的新手,正在学习中。在上面的代码中,我在数据库中创建了一个简单的无序列表帖子。每个帖子旁边都有一个编辑和删除链接。编辑链接工作得很好,并在帖子控制器中调用编辑方法。但是删除链接不起作用。我认为它在 post 控制器中运行 show 方法而不是 destroy 方法。为什么会这样?
更清楚地说,我已经在一定程度上解决了 foreach 指令中的代码问题
<form action="/posts/{{$post->id}}" method="post">
@csrf
<input type="hidden" name="_method" value=" DELETE">
<input type="submit" name="delete" value="Delete" id="">
</form>
但是为什么首先要这样做。我理解当我们使用表单时,因为 html 表单不支持 DELETE 方法,所以我必须添加隐藏的输入。但是为什么超链接标签不起作用。这是路线列表:
