MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Nie można przekazać wartości parametru do repozytorium findOneBy Symfony

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 ?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zaimplementować oAuth2 wraz z uwierzytelnianiem JWT w spring boot?

  2. Zapytanie Mongo do sortowania według odrębnej liczby

  3. Uruchamianie mongodb na ubuntu 16.04 LTS

  4. Jak w mongoDb usunąć element tablicy według jego indeksu?

  5. Eksportowanie danych z Mongo/Cassandra do HDFS za pomocą Apache Sqoop