Laravel Заводская ошибка Допустимый объем памяти 536870912 байт исчерпан (попытался выделить 262144 байта) - PullRequest
0 голосов
/ 05 августа 2020

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

, вот и ошибка.

PHP Неустранимая ошибка: допустимый размер памяти 536870912 байт исчерпан (попытался выделить 262144 байтов) в D: \ xampp \ htdocs \ Bootstrap \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Grammars \ Grammar. php в строке 1120 PHP Неустранимая ошибка: допустимый размер памяти 536870912 байт исчерпан ( попытался выделить 262144 байта) в Неизвестном в строке 0

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        factory(User::class,5)->create()->each(function ($user){
            $profile = factory(Profile::class)->make();
            $user->profile()->save($profile);
            $profile->each(function ($profiles){
                $qualification =factory(Qualification::class,3)->make();
                $experience =factory(Experience::class,3)->make();
                $profiles->qualification()->saveMany($qualification);
                $profiles->experience()->saveMany($experience);
            });
        });
    }
}

Для каждого пользователя есть один Профиль. Для каждого профиля имеет много (квалификация и опыт).

Если мы запустим этот код, приведенный ниже:

class DatabaseSeeder extends Seeder
{
   
    public function run()
    {
        DB::table('posts')->insertOrIgnore([
            ['id'=>1,'title'=>'admission','created_at'=>now(),'updated_at'=>now()],
            ['id'=>2,'title'=>'biology','created_at'=>now(),'updated_at'=>now()],
            ['id'=>3,'title'=>'mathematics','created_at'=>now(),'updated_at'=>now()],
            ['id'=>4,'title'=>'chemistry','created_at'=>now(),'updated_at'=>now()],
            ['id'=>5,'title'=>'physics','created_at'=>now(),'updated_at'=>now()],
            ['id'=>6,'title'=>'english','created_at'=>now(),'updated_at'=>now()],
            ['id'=>7,'title'=>'urdu','created_at'=>now(),'updated_at'=>now()],
        ]);
        DB::table('provinces')->insertOrIgnore([
            ['id'=>1,'title'=>'punjab','created_at'=>now(),'updated_at'=>now()],
            ['id'=>2,'title'=>'sindh','created_at'=>now(),'updated_at'=>now()],
            ['id'=>3,'title'=>'nwfp','created_at'=>now(),'updated_at'=>now()],
            ['id'=>4,'title'=>'balochistan','created_at'=>now(),'updated_at'=>now()],
        ]);

    }
}

с помощью этой команды php artisan db:seed, то ошибки не будет.

пожалуйста, помогите мне использовать завод laravel.

1 Ответ

0 голосов
/ 05 августа 2020

Чтобы исправить эту проблему, отредактируйте свой php.ini.

Увеличьте ограничение памяти на 512M>

; Maximum amount of memory a script may consume (128 MB)
; http://php.net/memory-limit

memory_limit=512M

или сделайте его неограниченным (это зависит от ресурсов вашего сервера)

; Maximum amount of memory a script may consume (128 MB)
; http://php.net/memory-limit

memory_limit=512M
...