首页 > 解决方案 > 在流明播种机上为伪造者转义逗号

问题描述

我正在学习使用工厂和faker到mysql数据库对流明进行一些简单的迁移和播种,以下是我的代码:

PostSeeder.php

use Illuminate\Database\Seeder;

class PostSeeder extends Seeder
{
    
    public function run()
    {
        factory(App\Models\Post::class, 40)->create();
    }
}

并在工厂PostFactory.php

$factory->define(Post::class, function (Faker $faker) {
    return [
        'post_id' => Str::uuid(),
        'title' => $faker->sentence(3),
        'content' => $faker->realText(200),
        'user_id' => Str::uuid(),
        'created_at' => $faker->dateTimeBetween('-1 years', 'now')->format('Y-m-d H:i:s'),
        'created_by' => Str::uuid(),
        'app' => NULL
    ];
});

当我尝试运行播种机时出现如下错误:

SQLSTATE [22001]:字符串数据,右截断:1406 第 1 行的列 'user_id' 数据太长(SQL:插入到 'posts'('post_id'、'title'、'content'、'user_id'、'created_at ', 'created_by', 'app') values (c1460ae8-e472-4439-aad8-af3aaf090268, Assumenda ipsa corrupti., King 得意洋洋地指着岸边,然后踩着她的眼镜,又开始以最快的速度捡起来尽她所能。接下来的事情就是像野兽一样哼哼,尖叫着'关闭。))

我不确定,但看起来在 faker realText 上的逗号没有在查询中被转义,我需要在工厂中添加什么来逃避 faker,或者需要在数据库上做些什么?

我在 ubuntu 18.04 上使用 mysql 14.14,在帖子表上使用 lumen 7.x,内容类型是文本

标签: phpmysqllaravellumenfaker

解决方案


推荐阅读