Laravel передает данные из сеялки на завод - PullRequest
0 голосов
/ 29 сентября 2019

Можно ли передать данные из сеялки на завод?

Я создаю приложение, которое должно добавить данные в начале

//seeder
public function run()
{
    $id = 0 //can i pass this var to factory?
    factory(App\VehicleCategory::class, 16)->create();
}

//factory
$factory->define(VehicleCategory::class, function (Faker $faker) {

$data = [
    'MICRO','SEDAN','CUV','SUV','MINIVAN','HATCHBACK','ROADSTER',
    'PICKUP','VAN','COUP'TRUCK','BIG TRUCK'
];

return [
    //
    'name' => $data[$id]
];
$id++;

});

Я пытался обойти это положить егоне работает тоже

Пытался сделать это так, но он всегда возвращает один и тот же идентификатор

$id = 0

$data = [
    'MICRO','SEDAN','CUV','SUV','MINIVAN','HATCHBACK','ROADSTER',
    'PICKUP','VAN','COUP'TRUCK','BIG TRUCK'
];


if(VehicleCategory::count() != 0){
    $id = VehicleCategory::latest()->first()->id;
}

return [
    //
    'name' => $data[$id]
];

1 Ответ

1 голос
/ 29 сентября 2019

Я предполагаю, что вы хотите генерировать случайные данные, кроме имени на фабрике, просто сохраните фабрику по умолчанию и переопределите 'name'

Так, например (с использованием пользовательской фабрики по умолчанию, поставляемой вместе с Laravel)

Затем в сеялку

public function run()
{
   $data = ['MICRO', 'SEDAN', 'CUV', 'SUV', 'MINIVAN', 'HATCHBACK', 'ROADSTER', 'PICKUP', 'VAN', 'COUP', 'TRUCK', 'BIG TRUCK'];

   foreach ($data as $name) {
      factory(User::class)->create(['name' => $name]);
   }
}

Результаты

[
    {
        "id": 1,
        "name": "MICRO",
        "email": "maximillia94@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 2,
        "name": "SEDAN",
        "email": "ziemann.bill@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 3,
        "name": "CUV",
        "email": "don90@example.org",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 4,
        "name": "SUV",
        "email": "dkoepp@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 5,
        "name": "MINIVAN",
        "email": "laney.schaden@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 6,
        "name": "HATCHBACK",
        "email": "herman.addison@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 7,
        "name": "ROADSTER",
        "email": "thaddeus89@example.org",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 8,
        "name": "PICKUP",
        "email": "eusebio32@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 9,
        "name": "VAN",
        "email": "caleb77@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 10,
        "name": "COUP",
        "email": "foster.kiehn@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 11,
        "name": "TRUCK",
        "email": "ophelia62@example.net",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    },
    {
        "id": 12,
        "name": "BIG TRUCK",
        "email": "elsie41@example.com",
        "email_verified_at": "2019-09-29 17:49:36",
        "created_at": "2019-09-29 17:49:36",
        "updated_at": "2019-09-29 17:49:36"
    }
]

Надеюсь, это поможет

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