如何解决使用 Laravel Faker 从预先填充的表中填充数据库表
我想用虚拟数据填充汽车报价列表。
具体是我希望品牌和型号来自已在数据库中创建的表。清单的标题也是 Make 和 Model。我的代码是这样的,但我认为这是完全错误的:
public function definition()
{
$id = DB::table('cars')->select('id')->inRandomOrder()->first();
$make = DB::table('cars')->where('id',$id)->select('make')->first();
$model = DB::table('cars')->where('id',$id)->select('model')->first();
return [
'title' => $make . " " . $model,'make' => $make,'model' => $model,'year' => $this->faker->numberBetween(1950,2021),'slug' => $this->faker->word(),];
}
解决方法
Laravel 中的查询构建器在您使用 first()
获取时返回一个表示数据库模型的对象
当您将属性设置为其他模型属性时,您应该访问这些属性
return [
'title' => $make->make . " " . $model->model,'make' => $make->make,'model' => $model->model,'year' => $this->faker->numberBetween(1950,2021),'slug' => $this->faker->word(),];
注意
以上答案仅解决了当前代码中的问题
正确的实现是创建模型(如果不存在)并通过外键将它们与关系联系起来,然后将它们附加到播种机中
工厂应该只包含对虚假数据的清晰和干净的定义
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。