删除 Laravel 中记录的最佳做法? PhpStorm 抛出警告
Best practice in deleting records in Laravel? PhpStorm throws warning
在 PhpStorm 中编写以下代码时会发出警告 "Unhandled \Exception":
Flight::where('flight_number', $flight_number)->delete();
这与 Laravel 网站上的记录几乎完全一致。如果没有发现要删除的记录,我不认为这会引发错误?
这真的应该用一个空的 catch 包裹在 try/catch 中,因为它不是真正的错误吗?特别是因为在我的例子中,如果没有发现要删除的记录就可以了。
PhpStorm 警告您的原因很简单。 Illuminate\Database\Eloquent\Model::delete()
的文档块包含此 @throws \Exception
annotation:
/**
* Delete the model from the database.
*
* @return bool|null
*
* @throws \Exception
*/
public function delete()
PhpStorm 不关心您如何调用 delete()
或者 flight_number
是否是 table 的 PK
。它不可能知道这些事情。它所知道的就是上面提到的 @throws
注释,它试图通过提醒你这件事来发挥作用。
您可以忽略该警告,为整个项目禁用它(在设置 -> 编辑器 -> 检查 -> 错误处理 -> 未处理的异常中),或者您可以仅对调用 [=14 的语句禁用它=]方法。
对于最后一个选项,您可以输入:
/** @noinspection PhpUnhandledExceptionInspection */
在 delete()
调用之前单独一行。这是一个特殊的文档块注释,它告诉 PhpStorm 忽略它后面的语句可能抛出的未处理异常。
或者,您可以将插入符号放在 delete()
调用上,按 Alt-Enter 并选择 "Add @throws tag" -> "Suppress for statement" 从打开的上下文菜单中。它将为您添加评论。
如果您确定 delete()
不会抛出任何异常(当模型未正确定义时抛出;这不是运行时错误,而是编码错误;它绝不能在模型编码后发生。
另一种使其静音的方法是在包含对 delete()
的调用的函数的文档块中添加 @throws \Exception
注释。这让 PhpStorm 知道异常没有在这个级别处理,当然,如果你没有在调用这个函数的代码中处理异常,它会警告你。
在 PhpStorm 中编写以下代码时会发出警告 "Unhandled \Exception":
Flight::where('flight_number', $flight_number)->delete();
这与 Laravel 网站上的记录几乎完全一致。如果没有发现要删除的记录,我不认为这会引发错误?
这真的应该用一个空的 catch 包裹在 try/catch 中,因为它不是真正的错误吗?特别是因为在我的例子中,如果没有发现要删除的记录就可以了。
PhpStorm 警告您的原因很简单。 Illuminate\Database\Eloquent\Model::delete()
的文档块包含此 @throws \Exception
annotation:
/**
* Delete the model from the database.
*
* @return bool|null
*
* @throws \Exception
*/
public function delete()
PhpStorm 不关心您如何调用 delete()
或者 flight_number
是否是 table 的 PK
。它不可能知道这些事情。它所知道的就是上面提到的 @throws
注释,它试图通过提醒你这件事来发挥作用。
您可以忽略该警告,为整个项目禁用它(在设置 -> 编辑器 -> 检查 -> 错误处理 -> 未处理的异常中),或者您可以仅对调用 [=14 的语句禁用它=]方法。
对于最后一个选项,您可以输入:
/** @noinspection PhpUnhandledExceptionInspection */
在 delete()
调用之前单独一行。这是一个特殊的文档块注释,它告诉 PhpStorm 忽略它后面的语句可能抛出的未处理异常。
或者,您可以将插入符号放在 delete()
调用上,按 Alt-Enter 并选择 "Add @throws tag" -> "Suppress for statement" 从打开的上下文菜单中。它将为您添加评论。
如果您确定 delete()
不会抛出任何异常(当模型未正确定义时抛出;这不是运行时错误,而是编码错误;它绝不能在模型编码后发生。
另一种使其静音的方法是在包含对 delete()
的调用的函数的文档块中添加 @throws \Exception
注释。这让 PhpStorm 知道异常没有在这个级别处理,当然,如果你没有在调用这个函数的代码中处理异常,它会警告你。