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

现在我有一个循环函数可以工作,直到我的数据库中没有匹配项,以便我可以获得唯一的字符串。但是,出于某种原因,我的循环是无限的。我在这里做错了吗?


do {

   $testvar = Str::random(5);

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

}

   while (!empty($data));

问题是我没有收到任何错误消息,但我也没有得到任何结果。重申一下,如果我的数组 $data 为空,我希望这个循环被终止,但如果它存在,我希望它继续直到它为空。


素胚勾勒不出你
浏览 181回答 3
3回答

大话西游666

你有没有试过这个,do{    $testvar = Str::random(5);     $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();  }while (!empty($data->count()));

慕丝7291255

尝试使用$data->count()检查结果集中是否返回了任何内容:do {    $testvar = Str::random(5);    $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();}while ($data->count());

慕盖茨4494581

您也可以使用以下代码:do {   $testvar = Str::random(5);   $data = User::where('password_url', 'LIKE', '%'.$testvar.'%')->get();}while (count($data)!=0);为什么我建议这样做,是因为有时$data->count()返回错误的计数!!(它发生在我身上,所以当时我使用了count()函数并且它起作用了!
打开App,查看更多内容
随时随地看视频慕课网APP