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
?