I ditt senaste kodexempel, vad är typen av $user
variabel? Jag antar att det kan vara en sträng om det är en routingparameter och kommer från URI:n. Du kan använda var_dump()
för att få typ och värde i ett slag.
Baserat på en tidigare kommentar sa du att Scripts-dokumentet hade följande fält:
- _id
- namn (sträng)
- beskrivning (sträng)
- index (heltal)
- användar-id (heltal)
Om index
fältet i ditt MongoDB-dokument är ett heltal, du måste använda ett heltal i frågan. Till exempel, findOneByIndex('1')
kommer inte att matcha ett dokument med heltal 1
inom sitt område. En bästa praxis här är att casta
dina värden till lämplig typ innan du frågar. Det kan också vara bäst att sluta lita på de magiska DocumentRepository-metoderna och uttryckligen definiera din egen findBy
metoder, som gör gjutningen internt. Sedan kan din styrenhet skicka en numerisk sträng direkt från en routing- eller begäranparameter och behöver inte oroa dig för att göra heltalscasten på egen hand.
För att kommentera ditt ursprungliga kodexempel:
$script = $repository->findOneByIndex($user);
Detta var för routingmönstret platform/designing/users/{user}/showuser
. Du sa att detta inte lyckades hitta något resultat. Jag antar $user
argument till din kontroller är ett användar-ID. Om så är fallet, varför frågade du på index
i stället för user_id
?