404未找到删除表单的laravel



这是控制器页面

/**
* 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请求不同于GETPATCH。对于删除路由,您应该使用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>

最新更新