Laravel 5:创建枚举数据类型的模型工厂时返回InvalidArgumentException:数据丢失

时间:2019-03-19 07:03:27

标签: laravel laravel-5 database-migration laravel-5.8 tinker

我有一个表速率,我想将其速率值限制为1到5。

//  Migration file for rates table
    Schema::create('rates', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedInteger('user_id');
            $table->morphs('rated');
            $table->enum('rate', [1, 2, 3, 4, 5]);
            $table->timestamps();
        });

我已经为此表创建了一个模型工厂。

//RateFactory.php    
$factory->define(Rate::class, function (Faker $faker) {
    $chapter = factory(Chapter::class)->create();
    return [
        'user_id' => factory(User::class)->create()->id,
        'rate' => $faker->randomElement([1,2,3,4,5]),
        'rated_type'> get_class($chapter),
        'rated_id' => $chapter->id
    ];
});

当我在修补匠中使用此工厂时:

$ php artisan tinker 

>>> factory(App\Rate::class)->create();

终端返回以下异常:

  

InvalidArgumentException,消息为“数据丢失”

根据Laravel Columns Enum Documentation,我尝试了相同的方法。

模型工厂/测试不支持枚举吗?我在枚举方面做错了吗?

0 个答案:

没有答案