Почему я получаю сообщение об ошибке, что rand не распознается при посеве в laravel - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь запустить php artisan: migrate --seed для моего DatabaseSeeder.php, но продолжаю получать эту ошибку в моем терминале:

InvalidArgumentException: Неизвестный модуль форматирования "rand"

239|                 return $this->formatters[$formatter];
240|             }
241|         }

242 |throw new \ InvalidArgumentException (sprintf ('Неизвестный форматер "% s"', $ formatter));243 |} 244 |245 |/ ** 246 |* Заменяет токены ('{{tokenName}}') на результат вызова метода токена

Вот код из моей базы данных php

    <?php
use App\Question;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
        factory(App\User::class, 3)->create()->each(function($u){
            $u->questions()
              ->saveMany(
                  factory(App\Question::class, rand(1,5))->make()
            );
        });
    }
}

Почему яполучить эту ошибку?

1 Ответ

1 голос
/ 15 марта 2019

Может быть лучше хранить rand() вне заводских крышек.Попробуйте изменить свой код на:

public function run()
{
    $number = rand(1,5);
    factory(App\User::class, 3)->create()->each(function($u) use ($number){
        $u->questions()
          ->saveMany(
              factory(App\Question::class, $number)->make()
        );
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...