Laravel Delete Query Builder

2022-08-30 12:23:43

在 Laravel 4 中,类函数接受为参数。这个函数的behaivor意味着,如果我有这样的东西:Illuminate\Database\QueryBuilderdeletenullid

DB::table('users')->where('id', $id)->delete();

如果 将 作为 传递,它将截断整个表。这意味着除了标准验证之外,我必须用验证包装每个删除语句。这是安全漏洞还是被视为标准做法?$idnull! is_null($id)


答案 1

我认为你误解了这个参数的目的是什么。它只是您所展示的示例的快捷方式。如果您有用户 ID,则可以删除它们而无需编写该子句。where

DB::table('users')->delete($id);

以上内容与此相同:

DB::table('users')->where('id', $id)->delete();

在使用这些方法中的任何一种之前,您显然会执行检查,以确保已提供有效的ID。我不会说这是一个安全漏洞,只是作为开发人员在开发应用程序时需要注意的。你不会在没有首先验证输入的情况下随意删除东西。


答案 2

推荐