sql >> Databáze >  >> NoSQL >> MongoDB

Nelze předat hodnotu parametru do repozitáře findOneBy Symfony

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 ?



  1. Další pole k registraci účtu passport-local-mongoose?

  2. Připojení WebSocket k <URL> se nezdařilo:Chyba během navázání spojení WebSocket:Neočekávaný kód odpovědi:521

  3. Nějaké podrobné a konkrétní důvody proč je MongoDB mnohem rychlejší než SQL DB?

  4. Proč má Redis funkce Pub/Sub?