Laravel验证:获取现有行的计数,以防止删除最后一行

Laravel验证:获取现有行的计数,以防止删除最后一行,laravel,laravel-4,Laravel,Laravel 4,在验证步骤中,我需要防止用户删除透视表中的最后一行。换句话说,用户在透视表中必须始终至少有一个条目 因此,当用户请求$user->pivot->detach($id)时,我希望以某种方式检查用户pivot表中的行计数,如果计数为1或更少,则抛出验证错误 我知道我可以扩展验证器并制定自定义规则,但希望有人知道内置方法,或者已经编写了自定义方法 注意:存在:pivot\u user验证方法返回布尔值,因此无法工作。哦,很抱歉,我在发布答案时误解了您的问题:)因此基本上验证规则应该检查pivot表中与

在验证步骤中,我需要防止用户删除透视表中的最后一行。换句话说,用户在透视表中必须始终至少有一个条目

因此,当用户请求
$user->pivot->detach($id)
时,我希望以某种方式检查用户pivot表中的行计数,如果计数为1或更少,则抛出验证错误

我知道我可以扩展验证器并制定自定义规则,但希望有人知道内置方法,或者已经编写了自定义方法


注意:
存在:pivot\u user
验证方法返回布尔值,因此无法工作。

哦,很抱歉,我在发布答案时误解了您的问题:)因此基本上验证规则应该检查pivot表中与给定的
user\u id
匹配的条目数是否大于
count($id)
是否至少增加1?(这意味着在执行
detach
之后,pivot表中至少还剩下一个条目)。我不认为有“内置”的方法可以做到这一点。你必须自己写。我会将
$user->pivot()->detach($id)
放在事务中,如果
$user->pivot()->count()<1
,则回滚。这行吗?@edpaez,是的,这是一个选择。然而,我使用命令模式,关注点的分离要求行计数的检查应该在验证器中,而不是在处理程序中。我可能会编写一个自定义验证方法来进行检查。谢谢你的想法,我确实喜欢db事务处理方法。