В последния ви пример с код какъв е типът на $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 ?