Laravel删除按钮抛出错误“页面无法找到
问题描述:
这是我的代码Laravel删除按钮抛出错误“页面无法找到
视图
<form action="/categories/ {{ $category->id }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button>Delete Task</button>
</form>
控制器方法
public function destroyCategory($id)
{
Categories::findOrFail($id)->delete();
return redirect('/categories');
}
路线
Route::post('categories','[email protected]');
表在局部看来,可以问题
答
您发送您的形式DELETE
方法,但你抓住它作为post
而不是delete
您route
文件&里面还有你在自己route
文件分配URL
参数。
<form action="/categories/{{ $category->id }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit">Delete Task</button>
</form>
route.php
Route::delete('categories/{id}','[email protected]');
答
您/categories
后有空间,你不用提交按钮:
<form action="/categories/{{ $category->id }}" method="POST">
{{ csrf_field() }}
<input name="_method" type="hidden" value="DELETE">
<input class="btn btn-danger" type="submit" value="Delete Task">
</form>
或用Laravel集体形式:
{!! Form::open(['method' => 'Delete', 'route' => ['task.delete', $category->id]) !!}
{!! Form::submit('Delete Task') !!}
{!! Form::close() !!}
此外,您正在使用post
路线而不是delete
。而且,正如@Rimon汗说,你不抓一个类别的ID:
Route::delete('categories/{id}', ['as' => 'task.delete', 'uses' => '[email protected]']);
答
你可以这样说:
你的路线应该是这样的:
Route::post('categories/{id}','[email protected]')->name('delete_categories');
控制器应该是这样的:
public function destroyCategory($id)
{
Categories::findOrFail($id)->delete();
return redirect()->to('/');
}
和HTML会是这样的:
<form action="{{ route('delete_categories', ['id' => $category->id]) }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit">Delete Task</button>
</form>
希望这有助于
您的表单的action属性的空间。 – jcorry