Как передать параметр в factory на laravel?

Пользователь

от nicola , в категории: PHP , 7 месяцев назад

Как передать параметр в factory на laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cloyd , 7 месяцев назад

@nicola 

В Laravel фабрики (factories) используются для создания тестовых данных для вашего приложения. Если вы хотите передать параметр в фабрику, можно воспользоваться методом state.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
// Определение фабрики с использованием метода state
$factory->define(AppModelsUser::class, function (FakerGenerator $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => bcrypt('secret'),
        'remember_token' => str_random(10),
    ];
});

$factory->state(AppModelsUser::class, 'admin', function ($faker) {
    return [
        'is_admin' => true,
    ];
});

// Использование фабрики с параметром state
$user = factory(AppModelsUser::class)->state('admin')->create();


В этом примере мы определяем фабрику для модели User. Затем мы создаем новый параметр admin с помощью метода state, который устанавливает значение is_admin в true. Наконец, мы вызываем фабрику и передаем параметр admin в метод state, чтобы создать пользователя с административными правами.


Вы можете передавать любое количество параметров с помощью метода state, чтобы определить различные состояния для ваших моделей.