سلام
وقت به خیر
من میخوام با 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 چه تغییری باید بدم؟
به pooria83 کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.