Laravel 8-创建虚拟数据时找不到模型工厂类

时间:2020-10-19 15:11:54

标签: php laravel

我目前正在跟踪laracasts的从零开始的laravel系列,由于这个系列的laravel版本是laravel 6,所以我一直陷在这个问题上。我已经在这里搜索了答案,发现了一个相似的主题,但我的情况有所不同,因为我安装了新的laravel 8版本。

我正在使用修补匠上的以下命令,使用工厂模型类创建虚拟数据:

Article::factory()->count(1)->make();

这是我得到的错误:

PHP Fatal error:  Class 'Article' not found in Psy Shell code on line 1

这是我的模型Article.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use HasFactory;
    protected $guarded = [];
}

这是我的工厂ArticleFactory.php

<?php

namespace Database\Factories;

use App\Models\Article;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;

class ArticleFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Article::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'user_id' => User::factory(),
            'title' => $this->faker->sentence,
            'excerpt' => $this->faker->sentence,
            'body' => $this->faker->paragraph
        ];
    }
}

我尝试使用默认模型和User的工厂创建虚拟数据,它工作正常。我在修补匠上使用了相同的代码:

>>> User::factory()->count(1)->make();
[!] Aliasing 'User' to 'App\Models\User' for this Tinker session.
=> Illuminate\Database\Eloquent\Collection {#3289
     all: [
       App\Models\User {#3294
         name: "Lane Maggio I",
         email: "tromp.deion@example.com",
         email_verified_at: "2020-10-19 15:08:24",
       },
     ],
   }

1 个答案:

答案 0 :(得分:-1)

在文件顶部添加以下代码段;

use App\Models\Article;