Dalam contoh kode terakhir Anda, apakah jenis $user
variabel? Saya berasumsi itu mungkin string jika itu adalah parameter perutean dan berasal dari URI. Anda dapat menggunakan var_dump()
untuk mendapatkan jenis dan nilai dalam satu kesempatan.
Berdasarkan komentar sebelumnya, Anda mengatakan bahwa dokumen Skrip memiliki bidang berikut:
- _id
- nama (string)
- deskripsi (string)
- indeks (bilangan bulat)
- id_pengguna (bilangan bulat)
Jika index
bidang dalam dokumen MongoDB Anda adalah bilangan bulat, Anda harus menggunakan bilangan bulat dalam kueri. Misalnya, findOneByIndex('1')
tidak akan cocok dengan dokumen dengan bilangan bulat 1
di bidangnya. Praktik terbaik di sini adalah melemparkan
nilai Anda ke tipe yang sesuai sebelum melakukan kueri. Mungkin juga lebih baik untuk berhenti mengandalkan metode DocumentRepository ajaib dan secara eksplisit mendefinisikan findBy
Anda sendiri metode, yang melakukan casting secara internal. Kemudian, pengontrol Anda dapat meneruskan string numerik langsung dari perutean atau parameter permintaan dan tidak perlu khawatir melakukan cast integer sendiri.
Juga, untuk mengomentari contoh kode asli Anda:
$script = $repository->findOneByIndex($user);
Ini untuk pola perutean platform/designing/users/{user}/showuser
. Anda mengatakan bahwa ini gagal untuk menemukan hasil. Saya menganggap $user
argumen ke pengontrol Anda adalah ID pengguna. Jika demikian, mengapa Anda menanyakan index
bidang alih-alih user_id
?