現在我有一個循環函數可以工作,直到我的數據庫中沒有匹配項,以便我可以獲得唯一的字符串。但是,出于某種原因,我的循環是無限的。我在這里做錯了嗎?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 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消