小编Neg*_*deh的帖子

如何在数据库播种器中将参数传递给 Laravel 工厂?

是否可以将数据从播种机传递到工厂?

这是我的PictureFactory

class PictureFactory extends Factory{

    protected $model = Picture::class;

    public function definition($galleryId = null, $news = false){
       if (!is_null($galleryId)){
            $galley = Gallery::find($galleryId);
            $path = 'public/galleries/' . $galley->name;
            $newsId = null;
         }
        if ($news){
            $path = 'public/newsPicture';
            $newsId = News::all()->random(1);
        }

        $pictureName = Faker::word().'.jpg';
        return [
            'userId' => 1,
            'src' =>$this->faker->image($path,400,300, 2, false) ,
            'originalName' => $pictureName,
            'newsId' => $newsId
       ];
    }
}
Run Code Online (Sandbox Code Playgroud)

我在数据库播种器中像这样使用它:

News::factory(3)
    ->has(Comment::factory()->count(2), 'comments')
    ->create()
    ->each(function($news) { 
        $news->pictures()->save(Picture::factory(null, true)->count(3)); 
    });
Run Code Online (Sandbox Code Playgroud)

$galleryId$news不传递到 …

php factory laravel laravel-seeding laravel-factory

3
推荐指数
1
解决办法
3844
查看次数

标签 统计

factory ×1

laravel ×1

laravel-factory ×1

laravel-seeding ×1

php ×1