Laravel - foreach повторить много раз - PullRequest
0 голосов
/ 08 июня 2018

У меня две модели: User & Book.Я хочу создать книгу для каждого пользователя с определенным QR-кодом

$users = User::get();
$date = ... ;
$finalCount = 0;
$code = 150;
$userCount = count($users);
foreach ($users as $user) {
    $book = new Book();
    $book->unique_id = uniqid('', true);
    $book->user_id = $user->unique_id;
    $book->code = "PP-" . strval(mt_rand(100, 999)) . strval($code);
    $book->create_date = $date;
    $book->status = 'active';
    $book->save();

    $QRCode = new BaconQrCodeGenerator;
    $file = public_path('/images/book/' . $book->code . '.png');
    $QRCode->encoding('UTF-8')
        ->format('png')
        ->merge('/public/image/logo.png', .15)
        ->size(1000)
        ->generate($book->unique_id, $file);
    if (File::exists($file))
        $finalCount++;
    $code++;
    if ($finalCount == $userCount)
        break;
}

После вызова этой функции у меня есть 20 книг для каждого пользователя.Я использовал оператор if для прерывания цикла (if ($finalCount == $userCount)), но он не работает.
Я не могу понять, что здесь происходит, а также у меня нет журнала ошибок

1 Ответ

0 голосов
/ 08 июня 2018

Вместо

$file = public_path('/images/book/' . $book->code . '.png'); 

попробуйте

$file = public_path().'/images/book/' . $book->code . '.png';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...