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