[英]Laravel5 Using JSON & Seeder to feed database
我試圖使用laravel的有用的種子功能來用自定義數據填充表。 而不是使用Seeder來使用Faker Im。 因此,我創建了一個:
這是我的代碼。
<?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_decode
默認會返回一個對象。 如果要使用數組,只需使用$assoc = true
。
$data = json_decode($json, true);
從文檔:
ASSOC
如果為TRUE,則返回的對象將轉換為關聯數組。
$ data是一個普通的對象,而不是laravel集合,因此它上面沒有toArray。 您可以通過以下操作將對象類型轉換為數組
$array1 = (array) $data;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.