我创建了一个类来更新购物车对象。当我尝试更新已存储在数据库中的对象时,出现错误The class "Doctrine\ODM\MongoDB\PersistentCollection" was not found in the chain configured namespaces App\Document"
。此错误仅发生在购物车对象上(并且仅在对象更新期间。创建新对象运行时没有问题),尽管项目中存在类似的对象不会导致此类问题。
除了这个错误,我还发现了几个:
仅当您尝试更新“EmbedMany”类型的字段时才会出现此错误。尝试更新通过而没有错误的所有其他字段。此外,对任何其他对象的任何操作都没有问题。
当我尝试使用 QueryBuilder 时,出现错误 Class 'Cart' does not exist
用于更新购物车对象的类只是一组业务逻辑(经过检查,事实证明它不会以任何方式影响错误,所以我没有展示逻辑)和标准对象保存使用:
$cart = $this->documentManager->getRepository(Cart::class)->find('some_id');
$cart->setProducts([/* CartItem[] */]);
$this->documentManager->flush();
我还附上了配置文件 ( config/packages/doctrine.yaml):
doctrine_mongodb:
auto_generate_proxy_classes: true
auto_generate_hydrator_classes: true
connections:
default:
server: '%env(resolve:MONGODB_URL)%'
options: {}
default_database: '%env(resolve:MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Document'
prefix: 'App\Document'
alias: App
可能是什么问题呢?
杨魅力