我在 Laravel 项目中使用了 Seeder
和 Faker
来生成测试数据。像下面这样:
class ArticlesTableSeeder extends Seeder
{
public function run()
{
// 获取 Faker 实例
$faker = app(Faker\Generator::class);
$articles = factory(Article::class)
->times(10)
->make();
Article::create($articles->toArray());
}
}
运行 php artisan db:seed
发生错误:
Seeding: ArticlesTableSeeder
In HasAttributes.php line 727:
preg_match() expects parameter 2 to be string, array given
经过排查,发现跟 Article::create();
方法有关,我将 create
改成了 insert
方法就解决了问题。
Article::insert($articles->toArray());
后来又尝试了查询构造器的方式,也能够成功运行:
\DB::table('articles')->insert($articles->toArray());