现在我有一个循环函数可以工作,直到我的数据库中没有匹配项,以便我可以获得唯一的字符串。但是,出于某种原因,我的循环是无限的。我在这里做错了吗?do { $testvar = Str::random(5); $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();} while (!empty($data));问题是我没有收到任何错误消息,但我也没有得到任何结果。重申一下,如果我的数组 $data 为空,我希望这个循环被终止,但如果它存在,我希望它继续直到它为空。
3 回答
大话西游666
TA贡献1817条经验 获得超14个赞
你有没有试过这个,
do{
$testvar = Str::random(5);
$data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();
}while (!empty($data->count()));
慕丝7291255
TA贡献1859条经验 获得超6个赞
尝试使用$data->count()检查结果集中是否返回了任何内容:
do {
$testvar = Str::random(5);
$data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();
}
while ($data->count());
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
您也可以使用以下代码:
do {
$testvar = Str::random(5);
$data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();
}while (count($data)!=0);
为什么我建议这样做,是因为有时$data->count()返回错误的计数!!
(它发生在我身上,所以当时我使用了count()函数并且它起作用了!
- 3 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消