我正在尝试在Laravel中创建一个删除按钮,但它会将我重定向到白页。 这是删除按钮的html代码(它是一个图标):
<a class="icon" href="{{ route('capteurs.destroy', $capteur->id)}}" data-balloon="Supprimer" data-balloon-pos="right">
<i class="fe fe-trash-2" ></i>
</a>
控制器类中的 destroy
函数:
public function destroy($id)
{
$capteur = Capteur::find($id);
$capteur->delete();
return redirect('/capteurs')->with('success', 'Capteur Supprimé');
}
相反,我在这里被重定向了,我想删除的元素仍然在那里:
编辑:俘虏路线
Route::resource('capteurs', 'CapteurController');
答案 0 :(得分:3)
我认为您应该为此做一个表格:
<form method="POST" action="{{ route('capteurs.destroy', $capteur->id)}}"
@csrf
@method('DELETE')
<a class="icon" data-balloon="Supprimer" data-balloon-pos="right">
</a>
<button type="submit"><i class="fe fe-trash-2" ></i></button>
</form>
答案 1 :(得分:1)
您需要在锚标记周围添加form
,接下来需要做的是DELETE
请求而不是GET
。您可以尝试以下代码:
<form action="{{ route('capteurs.destroy', $capteur->id) }}" method="POST">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<button type='submit' class="btn btn-danger" ><i class="fe fe-trash-2" ></i></button>
</form>
如果您真的希望它与锚标记一起使用,则给锚标记指定一个特定的id
并执行ajax请求!
答案 2 :(得分:0)
您当前正在链接到销毁页面,就像它的GET请求一样,而它应该是POST请求。如果执行php artisan route:list
,它将显示路线信息。
要解决此问题:
<form action="{{ URL::route('capteurs.destroy', $capteur->id) }}" method="POST">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<button><i class="fe fe-trash-2" ></i></button>
</form>
您可能需要编辑一些样式