【问题标题】:Array to String Conversion Exception while running db seed at Laravel 5.8?在 Laravel 5.8 上运行 db seed 时数组到字符串的转换异常?
【发布时间】:2019-07-24 04:46:10
【问题描述】:

我想用假数据填充我的数据库,但是当我运行种子命令时,它不断给我数组到字符串的转换异常我知道它是因为某些功能但我无法检测到哪一个? 我尝试使用 $faker->word 属性而不是名称,但同样的问题

$factory->define(User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'verified' => $verified = $faker->randomElements([User::VERIFIED_USER, User::UNVERIFIED_USER]),
        'verification_token' => $verified == User::VERIFIED_USER ? null : User::generateVerficationCode(),
        'admin' => $faker->randomElements([User::REGULAR_USER, User::ADMIN_USER]),
        'email_verified_at' => now(),
        'password' => 
    '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
        'remember_token' => Str::random(1, 10),
    ];
});

$factory->define(Category::class, function(Faker $faker){
    return [
        'name' => $faker->name,
        'description' => $faker->paragraph,
    ];
});

这是我的 Database Seeder 类函数

public function run()
{
    DB::statement('set FOREIGN_KEY_CHECKS = 0');

    User::truncate();
    Category::truncate();
    Product::truncate();
    Transaction::truncate();

    DB::table('category_product')->truncate();

    $userQuantity = 200;
    $categoriesQuantity = 50;
    $productsQuantity = 1000;
    $transactionQuantity = 1000;

    factory(User::class, $userQuantity)->create();

    factory(Category::class, $categoriesQuantity)->create();

    factory(Product::class, $productsQuantity)->create()->each(function($product) {

        $categories = Category::all()->random(mt_rand(1, 5))->pluck('id')->all();

        $product->categories()->attach($categories);

    });

    factory(Transaction::class, $transactionQuantity)->create();

}

【问题讨论】:

    标签: laravel seed


    【解决方案1】:

    问题是$faker->randomElements() 给了你一个数组。你想要的是$faker->randomElement(),它只会从你提供的数组中选择一个元素。

    【讨论】:

    • 谢谢它解决了这个问题,但还有另一个问题(无法找到名称为 [default] [App\Transaction] 的工厂)
    猜你喜欢
    • 2016-10-18
    • 2017-05-22
    • 1970-01-01
    • 2015-10-06
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2016-07-08
    相关资源
    最近更新 更多