Php 在控制器中获取删除id以删除mysql记录

Php 在控制器中获取删除id以删除mysql记录,php,laravel,laravel-routing,Php,Laravel,Laravel Routing,我在AuthController中有一个: 公共函数DelFunc(){ if(Auth::check()==true){ $deleted=DB::delete('delete from functionarios,其中id=?',[$id]); } return redirect()->route('admin.login'); } 但是我得到了这个错误:未定义的变量:id 我的视图中有此按钮: 我知道我的问题很简单,但是,如何获取AuthController上的id值以删除此记录 我

我在AuthController中有一个:

公共函数DelFunc(){ if(Auth::check()==true){ $deleted=DB::delete('delete from functionarios,其中id=?',[$id]); } return redirect()->route('admin.login'); } 但是我得到了这个错误:未定义的变量:id

我的视图中有此按钮:


我知道我的问题很简单,但是,如何获取AuthController上的id值以删除此记录

我也有这条路线:

Route::get('/admin/delFunc',[App\Http\Controllers\AuthController::class'delFunc'])->name('delFunc');

不要使用
[$id]
使用
[request('id')]
这里有一堆红旗:

  • 当它使用
    Funcionario
    对象时,为什么会进入名为
    AuthController
    的控制器
  • 为什么直接查询数据库而不是使用雄辩的模型
  • 您不应该通过GET方法删除项目,这是非常危险的
  • 身份验证由中间件完成,而不是通过在每个控制器方法中进行检查
  • 最后,您的方法还应该有一个更常规的名称,如
    destroy
路由参数在路由定义中使用“/admin/delete/{func}”等大括号定义,然后绑定到控制器方法定义中的对象

所以,把所有这些放在一起,它应该是这样的:


这是绝对正确的,但这是一种非常简单的方法,无法解决代码中的所有其他问题。太棒了,非常感谢。没问题,希望一切都有意义!方法名
destroy
更合适,路由名
functionario.destroy
根据@MohamedMufeed good pointYes,路由在web.php中。我希望我的代码中简单的打字错误应该很容易修复。不使用SQL,这是Laravel的一半要点。您只需删除雄辩的实例。