How to Retrieve a Random User id for Model Factory in Laravel
In this lesson we will see how to generate a random user id for a model factory in Laravel, let's assume that you are working on a blog with Laravel and you want to generate fake data using Laravel factories seeding for posts, and each post must have the id of the user linked to, so how we can do that?
Retrieve a Random User id for Model Factory in Laravel
So to do that we use the random() method like the code below:
<?php
namespace Database\Factories;
use Illuminate\Support\Str;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Post>
*/
class PostFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
$title = fake()->sentence();
return [
//
'title' => $title,
'slug' => Str::slug($title),
'body' => fake()->paragraph(),
'photo' => fake()->imageUrl(1040, 680),
'user_id' => User::all()->random()->id
];
}
}