sql >> Database teknologi >  >> NoSQL >> MongoDB

Kan ikke overføre værdien af ​​parameteren til findOneBy Symfony-lageret

I dit sidste kodeeksempel, hvad er typen af ​​$user variabel? Jeg antager, at det kan være en streng, hvis det er en routing-parameter og kommer fra URI'en. Du kan bruge var_dump() for at få typen og værdien i ét skud.

Baseret på en tidligere kommentar sagde du, at Scripts-dokumentet havde følgende felter:

  • _id
  • navn (streng)
  • beskrivelse (streng)
  • indeks (heltal)
  • bruger-id (heltal)

Hvis index feltet i dit MongoDB-dokument er et heltal, skal du bruge et heltal i forespørgslen. For eksempel findOneByIndex('1') vil ikke matche et dokument med heltal 1 på sit felt. En bedste praksis her er at caste dine værdier til den relevante type, før du forespørger. Det kan også være bedst at stoppe med at stole på de magiske DocumentRepository-metoder og udtrykkeligt definere din egen findBy metoder, som udfører støbningen internt. Derefter kan din controller sende en numerisk streng direkte fra en routing- eller forespørgselsparameter og ikke behøver at bekymre sig om at lave heltalcastet på egen hånd.

For også at kommentere dit originale kodeeksempel:

$script = $repository->findOneByIndex($user);

Dette var til routingmønsteret platform/designing/users/{user}/showuser . Du sagde, at det ikke lykkedes at finde et resultat. Jeg antager $user argumentet til din controller er et bruger-id. Hvis det er tilfældet, hvorfor spurgte du på index felt i stedet for user_id ?



  1. Gendan redis-data fra slave til master

  2. C# mongo-forespørgsler med json-strenge

  3. Forbindelse nulstillet af Peer pymongo

  4. mongodb num_rows tilsvarende php