为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel,做..while 循环无限循环?

Laravel,做..while 循环无限循环?

PHP
素胚勾勒不出你 2021-08-28 17:32:22
现在我有一个循环函数可以工作,直到我的数据库中没有匹配项,以便我可以获得唯一的字符串。但是,出于某种原因,我的循环是无限的。我在这里做错了吗?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()));


查看完整回答
反对 回复 2021-08-28
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

尝试使用$data->count()检查结果集中是否返回了任何内容:


do {

    $testvar = Str::random(5);

    $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();

}

while ($data->count());


查看完整回答
反对 回复 2021-08-28
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您也可以使用以下代码:


do {

   $testvar = Str::random(5);

   $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();

}while (count($data)!=0);

为什么我建议这样做,是因为有时$data->count()返回错误的计数!!


(它发生在我身上,所以当时我使用了count()函数并且它起作用了!


查看完整回答
反对 回复 2021-08-28
  • 3 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信