Как установить значение столбца true для одного пакета, когда три пакета создаются с фабрикой laravel? - PullRequest
0 голосов
/ 06 декабря 2018

В настоящее время я работаю в проекте и хочу сгенерировать поддельные данные в таблице пакетов.

У меня есть логический столбец featured для установки пакета или нет.При генерации поддельных данных я хочу, чтобы в каждой строке из трех пакетов был только один рекомендуемый пакет.

Вот мой код,

<?php

use Faker\Generator as Faker;

use App\Paragliding\Models\Package\Package;
use Intervention\Image\Facades\Image;

$factory->define(Package::class, function (Faker $faker) {
    return [
        'name' => $faker->text(15),
        'created_by' => App\User::where('role_id',3)->first()->id,
        'feature_image' => function()  use($faker){
            $name = $faker->text(10);
            Image::canvas(1024,768,$faker->hexcolor())->save(config('image.package_feature_path').$name.'jpg');
            return $name.'jpg';
        },
        'images' => function() use($faker){
            $images = array();
            for($i=0;$i<5;$i++){
                $name = $faker->text(10);
                Image::canvas(1024,768,$faker->hexcolor())->save(config('image.package_gallery_path').$name.'jpg');
                $images[] = $name.'jpg';
            }
            return json_encode($images);
        },
        'description' => $faker->realText(150),
        'featured' => $faker->randomElement([0,1]),

    ];
});

Возможно ли это с фабрикой?

Любой видпредложения приветствуются.

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете установить поля при создании моделей на заводе.В вашей сеялке:

factory(Package::class)->create([
  'featured' => true
]);

должен создать один пакет с полем featured, установленным в true.Любые другие значения будут взяты с вашего вышеуказанного завода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...