Desde laravel 8.0 fue actualizado Factory para que funcione como clase, ahora para llamar el factory desde Tinker es necesario llamarlo del siguiente modo:
Post::factory()->count(10)->create()
Ahora cuando se genera un Modelo con make:model creara la siguiente estructura por default:
El archivo Factory
<?php
namespace Database\Factories;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
// AQUI SE AGREGARA LA CLAVE MAS VALOR DE LA SIGUIENTE FORMA:
'title' => $this->faker->sentence
];
}
}
El archivo modelo:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?