W ostatnim przykładzie kodu, jaki jest typ $user
zmienny? Zakładam, że może to być ciąg znaków, jeśli jest to parametr routingu i pochodzi z identyfikatora URI. Możesz użyć var_dump()
aby uzyskać typ i wartość w jednym ujęciu.
Na podstawie wcześniejszego komentarza powiedziałeś, że dokument Skrypty zawiera następujące pola:
- _id
- nazwa (ciąg)
- opis (ciąg)
- indeks (liczba całkowita)
- identyfikator użytkownika (liczba całkowita)
Jeśli index
w twoim dokumencie MongoDB jest liczbą całkowitą, będziesz musiał użyć liczby całkowitej w zapytaniu. Na przykład findOneByIndex('1')
nie dopasuje dokumentu z liczbą całkowitą 1
w swojej dziedzinie. Najlepszą praktyką jest tutaj casting
Twoje wartości do odpowiedniego typu przed zapytaniem. Najlepiej też przestać polegać na magicznych metodach DocumentRepository i jawnie zdefiniować własne findBy
metody, które wykonują odlewanie wewnętrznie. Następnie twój kontroler może przekazać ciąg liczbowy bezpośrednio z parametru routingu lub żądania i nie musi się martwić o samodzielne rzutowanie liczb całkowitych.
Ponadto, aby skomentować oryginalny przykład kodu:
$script = $repository->findOneByIndex($user);
To było dla wzorca routingu platform/designing/users/{user}/showuser
. Powiedziałeś, że to nie przyniosło rezultatu. Zakładam, że $user
argumentem do kontrolera jest identyfikator użytkownika. Jeśli tak jest, dlaczego pytałeś o index
? pole zamiast user_id
?