【发布时间】:2021-01-12 18:46:27
【问题描述】:
所以我和我的朋友正在开发用于用户管理的管理员视图。我希望这个视图能够通过单击按钮来删除用户。
用户列表本身如下所示:
@section('main')
@csrf
<ul class="collapsible">
@foreach($users as $user)
<li method="POST" action="delete">
<div class="collapsible-header">
<i class="material-icons">face</i>{{$user->fname}} {{$user->lname}}
</div>
<div class="collapsible-body" id="{{$user->id}}">
<p>Adresse: {{$user->address1}}, {{$user->postalcode}} {{$user->city}}</p>
<p>Land: {{$user->country}}</p>
<p>E-Mail: {{$user->email}}</p>
<span>Beigetreten: {{$user->created_at}}</span>
<br>
<a class="btn red waves-effect waves-light user-delete-button" href=""
id="user-delete-button" data-userid="{{$user->id}}">
<i class="material-icons">delete</i>
</a>
</div>
</li>
@endforeach
</ul>
@endsection
扩展的dashboard.blade.php模板中的脚本如下:
<script>
$(document).ready(function(){
$('.collapsible').collapsible();
$('.user-delete-button').click(function (e){
$.ajax({
url: '{{route('deleteuser')}}',
data: {"userid": $(this).data("userid")},
type: 'post',
success: function(data)
{
console.log('deleted');
}
});
});
});
</script>
用户控制器:
class UserController extends Controller
{
public static function destroy($id) {
$user = \App\Models\User::findOrFail($id);
$user->delete();
return redirect('/userlist');
}
//
}
最后是 web.php 中的 Route:
Route::post('/deleteuser', [UserController::class, 'destroy'])->name('deleteuser');
所以现在每当我尝试删除单击按钮的用户时,我都会在控制台中收到“500 内部服务器错误”。
在这一点上,我不仅不知道我应该做些什么来完成这项工作。 我唯一想要的是删除一条记录并通过单击一个按钮刷新数据库。但目前我尝试过的任何方法都没有奏效。
我希望你能帮助我。提前致谢!
【问题讨论】:
-
转到您的存储 > 日志文件夹并告诉我们错误..
-
我认为函数不应该是静态的,你应该将id添加到你的路由
/deleteuser/{id} -
另外,请查看控制台网络选项卡中返回的响应,了解错误的具体情况。
标签: php mysql ajax laravel laravel-8