我有一个错误,我不明白它是如何发生的。如果我的路线如下:
javascript - 在模型的路径“_id”处将值“”转换到ObjectId失败-LMLPHP

我的控制器obter_todos_precos只是一个console.log,未使用任何模型,但是出现以下错误:

"message": "Cast to ObjectId failed for value \"preco\" at path \"_id\" for
model \"ZonaModel\""


通过这样改变路线的顺序,我找到了一个解决方案:
javascript - 在模型的路径“_id”处将值“”转换到ObjectId失败-LMLPHP

为什么我有这种行为?

最佳答案

路由器匹配它匹配的第一条路由
/:id_zona和/ preco路径与preco相同的路径也可以是id_zona的值

因此,当/ preco在上方时,
而当/:id_zona在上面,而您尝试使用/ preco时,路由将匹配到/:id_zona,并且id_zona的值是preco,在您的控制器中希望该对象为ObjectId类型

关于javascript - 在模型的路径“_id”处将值“”转换到ObjectId失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53805141/

10-09 21:27