Php 检查Laravel中是否只有一个数据库条目
我有一个表Php 检查Laravel中是否只有一个数据库条目,php,laravel,Php,Laravel,我有一个表item,每个用户都可以根据需要添加和删除该表,但是我希望item中始终至少有一个条目 有这种肮脏的方式,但肯定有更好的方式 我的解决方案: $items = item::all(); foreach($items as item) { $a++; } if ($a > 1) { delete_item(); return back(); } else { return back(); } 必须有一种更干净的方法来做到这一点。你可以。它返回表
item
,每个用户都可以根据需要添加和删除该表,但是我希望item
中始终至少有一个条目
有这种肮脏的方式,但肯定有更好的方式
我的解决方案:
$items = item::all();
foreach($items as item)
{
$a++;
}
if ($a > 1) {
delete_item();
return back();
} else {
return back();
}
必须有一种更干净的方法来做到这一点。你可以。它返回表中的项目数:
$totalOfItems = Items::count();
if ($totalOfItems > 1) {
delete_item();
}
return back();
这样,如果表中的项目总数大于1
则delete\u item()
操作将完成其工作,否则,它将返回
希望这对您有所帮助。您可以。它返回表中的项目数:
$totalOfItems = Items::count();
if ($totalOfItems > 1) {
delete_item();
}
return back();
这样,如果表中的项目总数大于1
则delete\u item()
操作将完成其工作,否则,它将返回
希望这对您有所帮助。如果希望这成为默认行为,您可以在
删除
事件时添加事件侦听器,并使用count()
。
查看laravel版本的具体详细信息。如果希望这是默认行为,可以在删除事件时添加事件侦听器,并使用
count()
。
查看laravel版本的具体细节要严格遵守OP的要求,它应该是
=1
,因为当前的解决方案将阻止用户删除从第一个到最后一个条目。但是我希望项目中始终有*至少一个条目*
是他想要的,所以我认为答案是正确的。即使是他自己的代码样本,他说它对他有用-尽管它很脏-也使用>1
他的代码使用一个从0开始计数的for循环,count函数返回元素的数量,因此他的实现确实声明了>1
,但由于这个0索引,它的行为将类似于count=1
。his添加的代码没有显示$a
的起始值,但假设它从0开始。如果$items中没有项目,它将转到else并返回(),对吗?如果$items中有1个项目,它也会转到else分支并返回(),对吗?毕竟,1不大于1。如果我们添加=1
,这对于$items
中的1个项目是正的,它将进入If分支并删除该项目,从而反对至少有一个项目在其中。如果它是0或1,我们希望它不做任何事情(不要删除它),还是他问了相反的问题?为了严格遵守OP的要求,它应该是=1
,因为当前的解决方案将阻止用户删除从第一个到最后一个条目。但是我希望在item*
中始终有*至少一个条目是他想要的,所以我认为答案是正确的。即使是他自己的代码样本,他说它对他有用-尽管它很脏-也使用>1
他的代码使用一个从0开始计数的for循环,count函数返回元素的数量,因此他的实现确实声明了>1
,但由于这个0索引,它的行为将类似于count=1
。his添加的代码没有显示$a
的起始值,但假设它从0开始。如果$items中没有项目,它将转到else并返回(),对吗?如果$items中有1个项目,它也会转到else分支并返回(),对吗?毕竟,1不大于1。如果我们添加=1
,这对于$items
中的1个项目来说是正的,它将进入If分支并删除该项目,从而反对至少有一个项目在里面。如果它是0或1,我们希望它什么都不做(不要删除它),或者他问了相反的问题?