【发布时间】:2020-11-20 03:29:40
【问题描述】:
您好,我是在 Laravel 上创建工厂的新手,我正在建立一个博客网站。目前不需要用户,因为它是草稿,但我正在尝试建立一个工厂来创建虚拟博客文章。
我有一个 Post.php 文件,如下所示:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $table = 'posts';
public $primaryKey = 'id';
public $timestamps = true;
}
我的 PostFactory 看起来像这样
use App\Post;
use Faker\Generator as Faker;
use Illuminate\Support\Str;
$factory->define(App\Post::class, function (Faker $faker) {
return [
'title' => $faker->name,
'body' => $faker->unique()->safeEmail,
];
});
但每次我尝试创建记录时,它都会抛出此错误“InvalidArgumentException with message 'Unable to locate factory for [App/Post]。'” 我知道它关于链接这些文件,但我不知道该怎么做。
【问题讨论】:
-
后模型的文件应命名为
Post.php,而不是posts.php。此外,您在模型中声明的所有属性都是不必要的,并且由 Laravel 自动声明。