Jaký je typ $user ve vašem posledním příkladu kódu variabilní? Předpokládám, že to může být řetězec, pokud je to parametr směrování a pochází z URI. Můžete použít var_dump() získat typ a hodnotu najednou.
Na základě dřívějšího komentáře jste řekli, že dokument Scripts obsahuje následující pole:
- _id
- jméno (řetězec)
- popis (řetězec)
- index (celé číslo)
- id_uživatele (celé číslo)
Pokud index pole ve vašem dokumentu MongoDB je celé číslo, budete muset v dotazu použít celé číslo. Například findOneByIndex('1') nebude odpovídat dokumentu s celým číslem 1 ve svém oboru. Zde je osvědčeným postupem odesílat
vaše hodnoty na příslušný typ před dotazem. Také může být nejlepší přestat se spoléhat na magické metody DocumentRepository a explicitně definovat svůj vlastní findBy metody, které provádějí odlévání interně. Potom může váš kontrolér předat číselný řetězec přímo z parametru směrování nebo požadavku a nemusí se starat o vlastní přetypování celého čísla.
Chcete-li také okomentovat svůj původní příklad kódu:
$script = $repository->findOneByIndex($user);
Toto bylo pro vzor směrování platform/designing/users/{user}/showuser . Řekl jste, že se nepodařilo najít výsledek. Předpokládám, že $user argument pro váš řadič je ID uživatele. Pokud je tomu tak, proč jste se dotazovali na index místo user_id ?