laravel - Laravel 工厂
问题描述
嗨,我是在 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 并带有消息'无法找到 [App/Post] 的工厂。'”我知道它如何链接这些文件,但我不知道该怎么做。
解决方案
首先如上所述,您的文件必须命名为 Post.php 而不是 posts.php。
由于您在文件开头使用 App\Post,因此您可以简单地调用Post::class
$factory->define(Post::class, function (Faker $faker)
另一种选择也可能是您缺少作曲家类图中的工厂文件夹:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
如果这不能解决问题,那么您可能需要在调用工厂的地方发布代码
@编辑
推荐阅读
- c# - Json Encoding 返回奇怪的编码
- mailchimp - 在 Mailchimp 中成功导入联系人后,观众显示 0 个联系人
- c++ - 带有指针和异常的 C++ 到 Ada
- javascript - 具有自动播放和控制功能的轮播幻灯片
- apache - 嵌入在 url 参数中的 Apache url 编码变量
- c++ - 为什么 std::list 有 remove 和 remove_if 函数
- node.js - 环回 API 连接到 MongoDB Atlas
- ios - 如何更改状态文本栏颜色
- azure - Azure Function CosmosDb 触发器一遍又一遍地处理相同的文档
- c - 当使用 mexMakeMemoryPersistent 调用 MEX 文件时,变量如何在后续调用中重新分配其指针?