gpt4 book ai didi

php - 在 laravel 中播种时出现质量分配错误

转载 作者:可可西里 更新时间:2023-11-01 13:37:00 25 4
gpt4 key购买 nike

我正在使用 faker 类来帮助播种我的数据库。 DatabaseSeeder 看起来像这样

<?php

class DatabaseSeeder extends Seeder
{
public function run()
{
Eloquent::unguard();

$tables = [
'users',
'posts',
];

foreach ($tables as $table) {
DB::table($table)->truncate();
}

$this->call('UsersTableSeeder');
$this->call('PostsTableSeeder');
}
}

和 UsersTableSeeder

<?php

class UsersTableSeeder extends Seeder {

public function run()
{
$faker = Faker\Factory::create();

for( $i=0 ; $i<50 ; $i++ ) {
$user = User::create([
'first_name' => $faker->firstName,
'surname' => $faker->lastName,
'email' => $faker->email,
'username' => $faker->userName,
'bio' => $faker->sentences,
'bio_html' => $faker->sentences,
'wesbite' => $faker->url,
'twitter' => $faker->word,
]);
}
}
}

当我尝试为该表设置种子时,我在终端中收到以下错误。

[Illuminate\Database\Eloquent\MassAssignmentException]  
first_name

如果我尝试同时播种,我会得到这个

 [ErrorException]                                                                       
preg_replace(): Parameter mismatch, pattern is a string while replacement is an array

我以为包含 Eloquent::unguard(); 可以阻止这个错误?我正在运行最新版本的 Laravel。

最佳答案

faker->sentences()faker->paragraphs() 返回arrays 并且您的类希望收到一个字符串。

你可以使用 faker->text() 或者你可以使用

implode(" ",$faker->sentences());

关于php - 在 laravel 中播种时出现质量分配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com