奏鸣曲媒体束安装错误



>正在尝试在symfony 3.3.6上安装Sonata媒体束

我正在写这个文档:https://sonata-project.org/bundles/media/3-x/doc/reference/installation.html

但是当我使用此命令行生成数据库时,我遇到了错误:php bin/console 原则:模式:更新 --force

错误消息 :

[Doctrine\DBAL\DBALException] 请求的列类型未知"json"。 您使用的任何教义类型都必须注册 \Doctrine\DBAL\Types\Type::addType((.您可以获得所有的列表 已知类型与 \Doctrine\DBAL\Types\Type::getTypesMap((。如果这个 数据库侦测期间发生错误,然后您可能忘记了 为原则类型注册所有数据库类型。用 AbstractPlatform#registerDoctrineType Mapping(( 或拥有您的自定义 类型实现 Type#getMappedDatabaseTypes((。如果类型名称为 空 您可能遇到缓存问题或忘记了一些映射 信息。

我的 config.yml 取自文档。我查看了所有这些文章,无处可寻。为什么会发生此错误?请帮忙,我开始失望了

您必须在原则配置中添加 json 类型:

doctrine:
dbal:
types:
json:     SonataDoctrineTypesJsonType

在你的配置文件中,你有两次原则部分。 第一个应用:

doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
# if using pdo_sqlite as your database driver:
#   1. add the path in parameters.yml
#     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
#   2. Uncomment database_path in parameters.yml.dist
#   3. Uncomment next line:
#path: '%database_path%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true

并且您没有在那里定义 JSON 类型。

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: "@AppBundle/Resources/config/admin.yml" }
- { resource: sonata_classification.yml }
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: ru
framework:
#esi: ~
translator: { fallbacks: ['%locale%'] }
secret: '%secret%'
router:
resource: '%kernel.project_dir%/app/config/routing.yml'
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
#serializer: { enable_annotations: true }
templating:
engines: ['twig']
default_locale: '%locale%'
trusted_hosts: ~
session:
# https://symfony.com/doc/current/reference/configuration/framework.html#handler-id
handler_id: session.handler.native_file
save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
fragments: ~
http_method_override: true
assets: ~
php_errors:
log: true
# Twig Configuration
twig:
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
# if using pdo_sqlite as your database driver:
#   1. add the path in parameters.yml
#     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
#   2. Uncomment database_path in parameters.yml.dist
#   3. Uncomment next line:
#path: '%database_path%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: '%mailer_transport%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
spool: { type: memory }
#Cache
doctrine_cache:
providers:
my_markdown_cache:
type: file_system
file_system:
directory: /tmp/doctrine_cache
sonata_admin:
title: My Blog Admin

sonata_block:
default_contexts: [cms]
blocks:
sonata.admin.block.admin_list:
contexts: [admin]
doctrine:
orm:
entity_managers:
default:
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~

dbal:
types:
json: SonataDoctrineTypesJsonType
sonata_media:
# if you don't use default namespace configuration
#class:
#    media: MyVendorMediaBundleEntityMedia
#    gallery: MyVendorMediaBundleEntityGallery
#    gallery_has_media: MyVendorMediaBundleEntityGalleryHasMedia
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
default_context: default # you need to set a context
contexts:
default:  # the default context is mandatory
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
- sonata.media.provider.vimeo
formats:
small: { width: 100 , quality: 70}
big:   { width: 500 , quality: 70}
cdn:
server:
path: /uploads/media # http://media.sonata-project.org/
filesystem:
local:
directory:  "%kernel.root_dir%/../web/uploads/media"
create:     false
sonata_media:
providers:
image:
resizer: sonata.media.resizer.square
doctrine:
orm:
entity_managers:
default:
mappings:
ApplicationSonataMediaBundle: ~
SonataMediaBundle: ~

相关内容

最新更新