2015-12-14 2 views
0

8 установлен с SonataAdminBundle, область администрирования работает хорошо, и я нахожусь на стадии установки SonataUserBundle, которая установлена ​​в src/Application. Все выглядит хорошо, но когда я пытаюсь заставить доктрину: схемы: обновление я получаю эту ошибку:Symfony2 Sonata Userbundle

[Doctrine\DBAL\DBALException] 
    Unknown column type "json" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the 
    known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this error occurs during database introspection then you might have forgot to register all database t 
    ypes for a Doctrine Type. Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMappedDatabaseTypes(). If the type name is 
    empty you might have a problem with the cache or forgot some mapping information. 

я нашел слишком много решений, на форумах и здесь, но ни один из них не работает.

Вот мой AppKernel.php зарегистрирован Связка:

public function registerBundles() 
{ 
    $bundles = array(
     new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
     new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
     new Symfony\Bundle\TwigBundle\TwigBundle(), 
     new Symfony\Bundle\MonologBundle\MonologBundle(), 
     new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
     new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
     new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
     new AppBundle\AppBundle(), 
    new Sonata\CoreBundle\SonataCoreBundle(), 
    new Sonata\BlockBundle\SonataBlockBundle(), 
    new Knp\Bundle\MenuBundle\KnpMenuBundle(), 
    new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(), 
    new Sonata\AdminBundle\SonataAdminBundle(), 
    new FOS\UserBundle\FOSUserBundle(), 
    new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'), 
    new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(), 
    new Application\Sonata\UserBundle\ApplicationSonataUserBundle(), 
    ); 

и вот моя конфигурация config.yml:

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 

# Put parameters here that don't need to change on each machine where the app is deployed 
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration 
parameters: 
    locale: en 

framework: 
    #esi:    ~ 
    translator:  { fallbacks: ["%locale%"] } 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: ~ 
    form:   ~ 
    csrf_protection: ~ 
    validation:  { enable_annotations: true } 
    #serializer:  { enable_annotations: true } 
    templating: 
     engines: ['twig'] 
     #assets_version: SomeVersionScheme 
    default_locale: "%locale%" 
    trusted_hosts: ~ 
    trusted_proxies: ~ 
    session: 
     # handler_id set to null will use default session handler from php.ini 
     handler_id: ~ 
    fragments:  ~ 
    http_method_override: 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.root_dir%/data/data.db3" 
     # 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 } 
sonata_block: 
    default_contexts: [cms] 
    blocks: 
     sonata.admin.block.admin_list: 
      contexts: [admin] 

# Sonata FOSUser 
sonata_user: 
    security_acl: true 
    manager_type: orm 
sonata_block: 
    blocks: 
     sonata.user.block.menu: # used to display the menu in profile pages 
     sonata.user.block.account: # used to display menu option (login option) 
fos_user: 
    db_driver:  orm 
    firewall_name: main 
    user_class:  Application\Sonata\UserBundle\Entity\User 
    group: 
     group_class: Application\Sonata\UserBundle\Entity\Group 
     group_manager: sonata.user.orm.group_manager 
    service: 
     user_manager: sonata.user.orm.user_manager 
doctrine: 
    dbal: 
     types: 
      json: Sonata\Doctrine\Types\JsonType 
doctrine: 
    orm: 
     entity_managers: 
      default: 
       mappings: 
        ApplicationSonataUserBundle: ~ 
        SonataUserBundle: ~ 

ответ

0

Я нашел ответ, первый у меня есть такая конфигурация:

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.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

и после этого я обновил:

doctrine: 
    dbal: 
     types: 
      json: Sonata\Doctrine\Types\JsonType 

два должны быть объединены, как это:

doctrine: 
    dbal: 
     types: 
      json: Sonata\Doctrine\Types\JsonType 
     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.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

 Смежные вопросы

  • Нет связанных вопросов^_^