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,我们希望它什么都不做(不要删除它),或者他问了相反的问题?