laravel - 404 not found for laravel for delete form
问题描述
这是控制器页面!
/**
* Remove the specified resource from storage.
*
* @param \App\URI $URI
* @return \Illuminate\Http\Response
*/
public function destroy(URI $URI)
{
$URI->deleted();
return redirect('/p');
}
这是下面的路线!
Route::patch('/page/{URI}','PageController@destroy');
这是下面的刀片页面代码
@foreach($pages as $page)
<tr>
<td><a href="/page/{{ $page->URI }}">{{$page->title}}</a></td>
<td><a href="/page/{{ $page->URI }}">{{$page->URI}}</td>
<td><a href="/page/{{ $page->URI }}/edit">Modify</a></td>
<td><a href="{{url('deletePage')}}">Delete</a></td>
</tr>
@endforeach
解决方案
DELETE
请求与和GET
不同PATCH
。对于删除路由,您应该改用DELETE
路由方法,并使用该方法提交表单DELETE
。您还应该为您的路线定义一个名称,以便您可以使用命名路线。
路线应该是
Route::delete('/page/{URI}', 'PageController@destroy')->name('page.destroy')";
然后你需要让你的删除按钮提交一个表单。
@foreach($pages as $page)
<tr>
<td><a href="/page/{{ $page->URI }}">{{$page->title}}</a></td>
<td><a href="/page/{{ $page->URI }}">{{$page->URI}}</td>
<td><a href="/page/{{ $page->URI }}/edit">Modify</a></td>
<td>
<form method="POST" action="{{ route("page.destroy", $URI) }}">
@csrf
@method("DELETE")
<input type="submit" value="Delete" />
</form>
<!-- <a href="{{url('deletePage')}}">Delete</a> -->
</td>
</tr>
@endforeach
请注意,您可能只是使用资源丰富的路由,并且您将获得资源丰富的控制器所需的所有路由。然后,不要手动指定每条路线,只需执行
Route::resource('page', 'PageController');
Laravel 将为您处理剩下的事情,并为您提供 RESTfull 控制器所需的所有路由。
然后你也可以在你的表中使用命名路由,
@foreach($pages as $page)
<tr>
<td><a href="{{ route("page.show", $URI) }}">{{$page->title}}</a></td>
<td><a href="{{ route("page.show", $URI) }}">{{$page->URI}}</td>
<td><a href="{{ route("page.edit", $URI) }}">Modify</a></td>
<td>
<form method="POST" action="{{ route("page.destroy", $URI) }}">
@csrf
@method("DELETE")
<input type="submit" value="Delete" />
</form>
</td>
</tr>
@endforeach
推荐阅读
- swift - 带有圆角 UIKit 的 UIImageView 的可点击区域
- c - 为什么这段代码只打印文件的第一行?
- tensorflow - CoreMLTools 转换为 MLModel:reName_Feature 不起作用
- python - Scrapy为什么我的蜘蛛不跟随到下一页?
- java - 如何在 Android 上结束片段上的活动
- r - 拟合非线性方程的参数以匹配实验数据
- java - 在函数调用Android中同步获取位置
- python - Tkinker 按钮功能无法按预期工作
- javascript - 函数不在代码中运行,但在 Chrome 控制台中运行(有时)
- javascript - JS For 循环返回空数组