如何在相关工厂laravel中传递变量

时间:2019-06-30 04:35:00

标签: php laravel factory

我正在通过Lumen上的PHP Unit创建测试。我尝试将变量$ name传递给相关的工厂模板->属性。

我已经尝试过此代码,但无法正常工作。

        $name = 'Mulyawan Sentosa';
        factory(TemplateModel::class)->create(
            [
                'id'    => 12
            ]
            )->each(
            function ($template) {
                $template->attributes()->save(
                    factory(TemplateattributeModel::class)->make(
                        [
                            'name'      => $name
                        ]
                    )
                );
            }
        );

如何执行此操作?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要在 use 关键字参数中传递变量以使用闭包函数中的变量。

$name = 'Mulyawan Sentosa';

factory(TemplateModel::class)->create(
            [
                'id'    => 12
            ]
        )->each(
            function ($template) use($name) {
                $template->attributes()->save(
                    factory(TemplateattributeModel::class)->make(
                        [
                            'name'      => $name
                        ]
                    )
                );
            }
        );

有关更多信息,请visit the PHP documentation