Database QueryException“;“数组到字符串的转换”;在laravel 5.4中播种时
当我尝试使用Database QueryException“;“数组到字符串的转换”;在laravel 5.4中播种时,database,laravel,faker,laravel-seeding,laravel-5.6,Database,Laravel,Faker,Laravel Seeding,Laravel 5.6,当我尝试使用php artisan db:seed对数据库进行种子设定时 发生以下异常 数组到字符串转换(SQL:插入用户(名称,电子邮件,密码,记住令牌,已验证,验证令牌,管理,更新处,创建处)值(罗莎娜·尼古拉斯,库恩。wilhelm@example.net,$2y$10$bW.zAFI2rZaLSUKIsqoPLu24nH otRIHRQkXYyKu8QwdcWRaOzblsC,l6ERPG47fC,1,02018-03-03 20:40:072018-03-03 20:40:07) 这是
php artisan db:seed对数据库进行种子设定时
发生以下异常
数组到字符串转换(SQL:插入用户
(名称
,电子邮件
,密码
,记住令牌
,已验证
,验证令牌
,管理
,更新处
,创建处
)值(罗莎娜·尼古拉斯,库恩。wilhelm@example.net,$2y$10$bW.zAFI2rZaLSUKIsqoPLu24nH
otRIHRQkXYyKu8QwdcWRaOzblsC,l6ERPG47fC,1,02018-03-03 20:40:072018-03-03 20:40:07)
这是我的ModelFactory.php文件
$factory->define(User::class, function (Faker\Generator $faker) {
static $password;
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
'verified' => $verified = $faker->randomElement([User::VERIFIED_USER,User::UNVERIFIED_USER]),
'verification_token' => $verified == User::VERIFIED_USER ? null : User::generateVerificationCode(),
'admin' => $verified = $faker->randomElements([User::ADMIN_USER, User::REGULAR_USER]),
];});
这是我的迁移代码
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->string('verified')->default(User::UNVERIFIED_USER);
$table->string('verification_token')->nullable();
$table->string('admin')->default(User::REGULAR_USER);
$table->timestamps();
});
}
这是我的播种课
public function run()
{
DB::statement('SET FOREIGN_KEY_CHECKS = 0');
User::truncate();
Category::truncate();
Product::truncate();
Transaction::truncate();
DB::table('category_product') -> truncate();
$usersQuantity = 200;
$categoriesQuantity = 30;
$productsQuantity = 1000;
$transactionsQuantity = 1000;
factory(User::class, $usersQuantity)->create();
factory(Category::class, $categoriesQuantity)->create();
factory(Product::class, $productsQuantity)->create()->each(
function ($product) {
$categories = Category::all()->random(mt_rand(1, 5))->pluck('id');
$product->categories()->attach($categories);
});
factory(Transaction::class, $transactionsQuantity)->create();
}
这就是模型
class User extends Authenticatable{
use Notifiable;
const VERIFIED_USER = '1';
const UNVERIFIED_USER = '0';
const ADMIN_USER = '1';
const REGULAR_USER = '0';
protected $table = 'users';
protected $fillable = [
'name',
'email',
'password',
'verified',
'verification_token',
'admin',
];
protected $hidden = [
'password',
'remember_token',
'verification_token',
];
public function isVerified(){
return $this->verified == User::VERIFIED_USER;
}
public function isAdmin(){
return $this->admin == User::ADMIN_USER;
}
public static function generateVerificationCode(){
return str_random(40);
}
任何人都可以给出解决方案,它会非常感激。!对于初学者来说,randomElements
函数返回一个数组,而不是字符串