这是控制器页面
/**
* Remove the specified resource from storage.
*
* @param AppURI $URI
* @return IlluminateHttpResponse
*/
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
建议使用deleteRoute::delete('/page/{URI}','PageController@destroy');
Route::delete('/page/{URI}','PageController@destroy')->name('page.destroy');
Route::get('/page/{URI}','PageController@show')->name('page.show');
Route::get('/page/{URI}/edit','PageController@edit')->name('page.edit');
Route::patch('/page/{URI}','PageController@update')->name('page.update');
这里假设您在控制器中使用模型绑定:
@foreach($pages as $page)
<tr>
<td><a href="{{route('page.show', $page)}}">{{$page->title}}</a></td> //guessing this is page_show
<td><a href="{{route('page.show', $page)}}">{{$page->URI}}</td> //guessing this is page_show
<td><a href="{{route('page.edit', $page)}}">Modify</a></td>
</tr>
@endforeach
使用最后一列删除数据,如下所示:
<td>
<form action="{{route('page.destroy', $page)}}" method="POST"
onsubmit="return confirm('delete data?');">
{{csrf_field()}}
{{method_field('delete')}}
<input type="submit" value="delete">
</form>
</td>