Ein Produkt hat eine Unterkategorie. In meiner Produkttabelle habe ich subcategory_id Feld. Ich habe auch eine anglesTo Beziehung zwischen Produkt- und Unterkategorie-Modellen eingerichtet. Also habe ich eine Methode, die alle Produkte mit einer bestimmten Tag-ID zurückgibt. Hier ist mein Code:Laravel - Unterkategorie von Produkt (AnginesTo) in Ajax Antwortdaten zugreifen.
public function getProductsByTag($tag_id)
{
$tag = Tag::find($tag_id);
$products = $tag->products; //belongsTo relationship
return json_encode(['products' => $products]);
}
Dann auf Erfolg in meiner Ajax-Request ich die Unterkategorie des Produkts zugreifen müssen, wie ich die Produkte des Tags $tag->products
abgerufen. So in Laravel wäre es:
$subcategory = $product->subcategory;
Ich dachte, dass product.subcategory
würde den Trick tun, aber ich bekomme nicht definiert. Hier ist meine Ajax-Erfolgsfunktion:
success: function (data) {
$.each(data.products, function (i, product) {
console.log(product.subcategory);
});
},
Ich bekomme undefined in meiner Konsole. Wie kann ich auf Beziehungen in Ajax-Antwortdaten zugreifen?
in Ihrer Controller-Methode versuchen Sie diese $ Produkte = $ tag-> Produkte() -> mit ('Unterkategorie') -> get(); // goesTo relationship ' – zorx
Probieren Sie diese '$ .each (Daten, Funktion (i, Produkt) { console.log (productsubkategorie); });' –
@zorx Dies funktioniert. Ich habe jedoch ein Produkt, das eine Unterkategorie hat, die eine Kategorie hat. Wie kann ich auf die Kategorie zugreifen? Veröffentlichen Sie Ihren Kommentar als Frage, damit ich ihn genehmigen kann. – Codearts