Ich bin derzeit mit dem folgenden festgefahren: Ich versuche, ein Catgorie System zu meiner App zu implementieren. Daher brauche ich etwa 100-200 Kategorien mit einigen "Elternkategorien". Daher möchte ich zwei Tabellen erstellen: Kategorie, Unterkategorie. Die Kategorietabelle enthält die übergeordneten Kategorien, die Unterkategorien sind deren Unterkategorien und verweisen auf den Primärschlüssel der übergeordneten Kategorie. Hier ist, was ich mit der Kategorie bedeuten:Laravel - Seed Daten für Kategorien
Geordnete Kategorie: Kleidung
Unterkategorie: Frauenschuhe
Unterkategorie: Herrenhemden
Unterkategorie: Jeans
Geordnete Kategorie: Handys
Unterkategorie: Smartphones
Unterkategorie:
Unter PDA: Smartwatches
und so weiter.
Was ich versuchte, ist dies:
$categories = array(['name' => 'Clothing'], ['name' => 'Handy']);
$sub_categories = array(
'Clothing' => ['name' => ' Woman Shoes '], ['name' => 'Men\'s Shirts'],
'Handy' => ['name' => ' Smartphones '], ['name' => 'Smartwatches ']
);
foreach($categories as $category)
{
$category = Category::create($category);
foreach ($sub_categories as $sub_category)
{
$active = $sub_category[$category->name];
$active['parent_id'] = $categories->id;
SubCategory::create($active);
}
}
Aber ich bin immer den Fehler (wenn Aussaat) index undefined: clothing
, vermutet, es ist wegen dieses Teils: $sub_category[$category->name];
... Aber wie kann ich es besser machen? Oder wie kann ich das funktionieren?
Ich habe auch versucht, dass (in der inneren foreach):
$subcategory = new Subcategory();
$subcategory->name = $sub_category['name'];
$subcategory->parent_id = $category['id'];
$subcategory->save();
Auf diese Weise gibt es keine Fehler gibt, aber alle Eltern Kategorie jede Untergruppe hat, so sehe ich nicht für die Unterkategorien Eltern.
Wie kann ich bekommen, was ich will?
Okay, was ist die Antwort zu lösen? Ändern Sie die letzte Zeile in Ihren bereitgestellten Code? Gleicher Fehler, undefinierter Index ... – user5638730
Ich habe meinen Code aktualisiert. Es wird für Sie arbeiten und es ist lesbarer. –
Ja, das funktioniert gut. Ich benutze jetzt protected $ guarded = ['id']; als alles andere sollte Masse zuweisbar sein. – user5638730