0

在 Payum Bundle Setup 之后,当我这样做时,php app/console doctrine:schema:update --force我得到了这个异常:

C:\wamp\www\shop_@stable>php 应用程序/控制台原则:schema:update --force

[Doctrine\DBAL\DBALException]
请求的未知列类型“extended_pa​​yment_data”。您使用的任何 Doctrine 类型都必须在 \Doctrine\DBAL\Types\Type::addType() 中注册。您可以
使用 \Doctrine\DBAL\Types\Type::getTypesMap() 获得所有已知类型的列表。
如果在数据库自省期间发生此错误,那么您可能忘记为
Doctrine Type 注册所有数据库类型。使用 AbstractPlatform#registerDoctrineTypeMapping() 或让您的自定义
类型实现 Type#getMappedDatabaseTypes()。如果类型名称为空,则可能
是缓存有问题或忘记了一些映射信息。

这是我的 composer.json 内容:

"require": {
    "php": ">=5.5.12",
    "symfony/symfony": "2.8.0",
    "doctrine/dbal": "2.4",
    "doctrine/orm": "2.4",
    "doctrine/doctrine-bundle": "~1.4",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~4.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "~2.0",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "php-http/curl-client": "^1.3",
    "payum/paypal-express-checkout-nvp": "^1.2",
    "payum/payum-bundle": "^2.0"
},
4

2 回答 2

1

你必须像这样安装 jms:

composer require jms/payment-core-bundle

谢谢

于 2019-04-10T07:20:26.200 回答
0

这不是因为 Payum 分期付款,而是因为您删除了 JMSPaymentBundle。问题来自那里,有一个学说类型:https ://github.com/schmittjoh/JMSPaymentCoreBundle/blob/master/Entity/ExtendedDataType.php 。有关此类型的信息存储在您的数据库中,并且教义试图在代码中找到这种类型,但它不再存在。

解决方案:再次安装 jms 捆绑包,删除与其相关的表并生成迁移(因此产品也正确更新)。将其部署到产品。只有在那之后,您才能删除 jms 付款包。

于 2016-03-28T06:35:01.317 回答