Php 在控制器中获取删除id以删除mysql记录
我在AuthController中有一个: 公共函数DelFunc(){ if(Auth::check()==true){ $deleted=DB::delete('delete from functionarios,其中id=?',[$id]); } return redirect()->route('admin.login'); } 但是我得到了这个错误:未定义的变量:id 我的视图中有此按钮: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上的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的一半要点。您只需删除雄辩的实例。