MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Не може да се предаде стойност на параметъра в хранилището на findOneBy Symfony

В последния ви пример с код какъв е типът на $user променлива? Предполагам, че може да е низ, ако е параметър за маршрутизиране и идва от URI. Можете да използвате var_dump() за да получите типа и стойността с един изстрел.

Въз основа на по-ранен коментар казахте, че документът със скриптове има следните полета:

  • _id
  • име (низ)
  • описание (низ)
  • индекс (цяло число)
  • user_id (цяло число)

Ако index във вашия MongoDB документ е цяло число, ще трябва да използвате цяло число в заявката. Например findOneByIndex('1') няма да съответства на документ с цяло число 1 в своята област. Най-добра практика тук е да cast вашите стойности към подходящия тип, преди да направите заявка. Може също така да е най-добре да спрете да разчитате на магическите методи на DocumentRepository и изрично да дефинирате свой собствен findBy методи, които извършват кастинга вътрешно. След това вашият контролер може да прехвърли цифров низ директно от параметър за маршрутизиране или заявка и не трябва да се притеснява да извърши самостоятелно прехвърлянето на цяло число.

Също така, за да коментирате оригиналния си примерен код:

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

Това беше за модела на маршрутизиране platform/designing/users/{user}/showuser . Казахте, че това не доведе до резултат. Предполагам $user аргумент за вашия контролер е потребителско име. Ако случаят е такъв, защо питахте към index поле вместо user_id ?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да се справим с деленето на нула в рамката за агрегиране на MongoDB

  2. Как извличате клеймо за време от MongoDB ObjectId в Spring Data MongoDB?

  3. int to float преобразуване в Mongo find

  4. Mongo Db търсене по индексирано поле

  5. Сортиране на подполета с неизвестен родител