【发布时间】:2017-08-20 14:35:11
【问题描述】:
我正在尝试使用 laravel 有用的播种功能来使用自定义数据填充表格。而不是使用 Seeder 使用 Faker Im。因此我创建了一个:
- ‘/json/’文件夹并将我的 JSON 数据文件放在那里。
- 最后,在播种器中,我将数据映射到 JSON 对象属性。
这是我的代码。
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class JsonTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$json = File::get("/json/cell-1.json");
$data = json_decode($json);
$array1 = $data->toArray();
foreach ($array1['products'] as $obj) {
DB::table('products')->insert(array(
'id' => $obj->id,
'name' => $obj->productName,
'sku' => $obj->productSku
));
foreach ($data['relatedProducts'] as $obj) {
DB::table('products_related')->insert(array(
'sku' => $obj->sku
));
}
}
}
}
但我收到许多不同的错误,例如:
调用未定义的方法 stdClass::toArray()
不能使用 stdClass 类型的对象作为数组(如果我不使用 $array1 = $data->toArray(); 并直接使用 $data。
任何帮助表示赞赏。
【问题讨论】:
-
我能知道,你把你的 json 文件放在哪里了吗?我无法播种我的 json 数据