pooria83
5 سال پیش توسط pooria83 مطرح شد
0 پاسخ

راهنمایی در مورد faker

سلام
وقت به خیر
من میخوام با database seeder تعدادی کاربر بسازم که هر کدومشون x تا course دارن و هر course هم y تا episode داره.
یه فیلد number توی مدل episode دارم که مشخص میکنه این رکورد قسمت چندم از course هستش.
میخوام فیلد number یه عدد بین 1 تا y باشه و غیر تکراری برای همون course.

 protected $model = Course::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'title' => $this->faker->sentence(),
            'body' => $this->faker->paragraph(5),
            'price' => $this->faker->numberBetween($min = 1000, $max = 9000),
            'image' => $this->faker->imageUrl()
        ];
    }
 protected $model = Episode::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'title' => $this->faker->sentence(),
            'body' => $this->faker->paragraph(5),
            'number' => $this->faker->numberBetween(1 , 5) ,
            'video_url' => 'http://techslides.com/demos/sample-videos/small.mp4',
            'view_count' => $this->faker->numberBetween(0 , 1000),
            'comment_count' => $this->faker->numberBetween(0 , 1000),
        ];
    }
 $user = User::factory()
        ->has(
            Course::factory()
            ->has(
                Episode::factory()
                ->count(5)
                ->state(function (array $attributes, Course $course) {
                    return ['course_id' => $course->id];
                })
            )
                    ->count(3)
                    ->state(function (array $attributes, User $user) {
                        return ['user_id' => $user->id];
                    })
        )
        ->count(5)
        ->create();

میشه بفرمایید رو فیلد number موقع استفاده از faker چه تغییری باید بدم؟