J'ai un fichier json et Im essayant d'inclure l'information dans une table MySQL DB. fichier JSON:Json obtenir le contenu en utilisant 2 foreach en php pour récupérer plusieurs nœuds profondeur
"categories": [{
"id": "cat0101000",
"name": "TVs",
"url": "https://www.url.com/site/",
"path": [
{
"name": "Home",
"id": "cat00000"
},
{
"name": "TV & Home Theater",
"id": "cat0100000"
},
{
"name": "TVs",
"id": "cat0101000"
}
],
Le code pour inclure chaque registre:
public function handle()
{
$json = file_get_contents('resources/json/categories_0001.json');
$data = json_decode($json);
$array1 = (array)$data;
foreach ($array1['categories'] as $obj) {
DB::table('categories')->insert(array(
'categoryId' => ((isset($obj->id) ? $obj->id : 1)),
'categoryName' => ((isset($obj->name) ? $obj->name : null)),
'parentId' => end($obj->path)->id,
'URL' => ((isset($obj->url) ? $obj->url : 1)),
));
}
}
Mon idée est d'inclure tous les enregistrements à l'intérieur "path" concaténer tous les champs. par exemple:
'chemin' =>. "$ obj-> chemin-> id". "\". "$ obj-> chemin-> id". "\". "$ obj-> chemin-> id"
J'ai essayé foreach à l'intérieur mais sans succès. toute aide appréciée.
mon problème est que Im en utilisant DB :: Table ('catégories') -> insérer (array (et je ne trouve pas le moyen d'inclure un foreach à l'intérieur de cette instruction (-> insert) –
Vous pouvez faire un tableau d'abord et ensuite mettre à l'intérieur de l'insert – C2486