Moin zusammen,
ich versuche in einem EntityRepository eine Entity anhand eines JSON Datenbankfeldes zu finden:
$superEntity = $this->superRepository->searchIds((new Criteria())->addFilter(new AndFilter([
new EqualsFilter('measurements', json_encode($super['measurements'])),
])), $context->getContext())->firstId();
Ich habe bisher nur nach Entities gesucht wo ein String drin stehen sollte. Wie kann ich prüfen, ob in dem JSON-Feld in der Datenbank ein bestimmter Key/Value steht?
In der entsprechenden JSON-Spalte in der Datenbank steht sowas wie:
{"width": 500, "length": 500, "diameter": 500, "innerDiameter": 50, "outerDiameter": 500}
Das oben versuchte json_encode() macht vermutlich nicht die gleichen Spaces, weshalb der String nicht identisch ist, aber das wäre sowieso nur die halbe Lösung.
Eigentlich möchte ich mir eine beispielsweise eine Entity suchen, die innerhalb des JSON-Feldes z.B: „width“ == 500 hat.
Hat jemand eine Idee?