MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Không thể chuyển giá trị của tham số vào kho lưu trữ Symfony findOneBy

Trong ví dụ mã cuối cùng của bạn, loại $user là gì Biến đổi? Tôi cho rằng nó có thể là một chuỗi nếu đó là một tham số định tuyến và đến từ URI. Bạn có thể sử dụng var_dump() để nhận loại và giá trị trong một lần chụp.

Dựa trên nhận xét trước đó, bạn nói rằng tài liệu Scripts có các trường sau:

  • _id
  • tên (chuỗi)
  • mô tả (chuỗi)
  • chỉ mục (số nguyên)
  • user_id (số nguyên)

Nếu index trong tài liệu MongoDB của bạn là một số nguyên, bạn sẽ cần sử dụng một số nguyên trong truy vấn. Ví dụ:findOneByIndex('1') sẽ không khớp với tài liệu có số nguyên 1 trong lĩnh vực của nó. Phương pháp hay nhất ở đây là truyền giá trị của bạn vào loại thích hợp trước khi truy vấn. Tốt nhất bạn nên ngừng dựa vào các phương thức DocumentRepository kỳ diệu và xác định rõ ràng findBy của riêng bạn phương pháp thực hiện đúc nội bộ. Sau đó, bộ điều khiển của bạn có thể truyền trực tiếp một chuỗi số từ tham số định tuyến hoặc tham số yêu cầu và không phải lo lắng về việc tự thực hiện ép kiểu số nguyên.

Ngoài ra, để nhận xét về ví dụ mã ban đầu của bạn:

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

Điều này dành cho mẫu định tuyến platform/designing/users/{user}/showuser . Bạn đã nói rằng điều này không tìm thấy kết quả. Tôi giả sử là $user đối số cho bộ điều khiển của bạn là một ID người dùng. Nếu đúng như vậy, tại sao bạn lại truy vấn trên index trường thay vì user_id ?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Thông báo MongoDB bằng Python

  2. Cách bắt đầu với Tự động hóa cơ sở dữ liệu

  3. Chuyển đổi dự phòng cho MySQL Replication (và những thứ khác) - Nó có nên được Tự động hóa không?

  4. Cách sử dụng $ regex trong truy vấn tổng hợp mongodb trong $ match

  5. Làm cách nào để cập nhật giá trị của tài liệu nhúng cụ thể, bên trong một mảng, của một tài liệu cụ thể trong MongoDB?