factory 填充数据是否可以暂时停用修改器

# 数据表
`status` varchar(20) NOT NULL DEFAULT 'publish'

post status 字段是以 publish 、draft 两种保存.

# Post Model
    public function getStatusAttribute($value)
    {
        $post_status = ['publish'=>'已发表', 'draft'=>'草稿'];
        return $post_status[$value];
    }

Post Model 中添加 status 的修改器,这样输出的数据直接可视化的。

# 在填充数据中
<?php

use Faker\Generator as Faker;

$factory->define(App\Models\Post::class, function (Faker $faker) {

    $post_status    = ['publish','draft'];

    return [
        'title'             => $faker->sentence,
        'content'           => $faker->text,
        'excerpt'           => $faker->text,
        'status'            => $faker->randomElement($post_status),
    ];
});
use Illuminate\Database\Seeder;
use App\Models\Post;

class PostsTableSeeder extends Seeder
{
    public function run()
    {
        Post::insert(factory(Post::class)->times(100)->make()->toArray());
    }
}

填充后,在数据库中 status 字段值为修改器中的 已发表、草稿 的文字,想再填充的时候,直接填充 publish 、draft 这样的数据,

可以临时停用修改器么?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

这样做应该就不会触发了,试试看。可以的话告诉我一下。

public function run()
{
    factory(Post::class, 100)->create();
}
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!