1

我能够通过这种方式连接到 symfony2 中的教义:

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                    driver:   "%database_driver%"
                    host:     "%database_host%"
                    port:     "%database_port%"
                    dbname:   "%database_name%"
                    user:     "%database_user%"
                    password: "%database_password%"
                    charset:  UTF8
                    mapping_types:
                                  enum: string

    orm:
        auto_generate_proxy_classes: false
        proxy_namespace: Proxies
        proxy_dir: Proxies
        default_entity_manager: default # The first defined is used if not set
        entity_managers:
            default:
                    connection: default
                    mappings: # Required
                             ApplicationUserBundle:
                                   type: annotation
                    class_metadata_factory_name: Doctrine\ORM\Mapping\ClassMetadataFactory
                    dql:
                        datetime_functions:
                        UNIX_TIMESTAMP: DoctrineExtensions\Query\Mysql\UnixTimestamp

现在我的问题是如何在上面的配置中有这个?

$config->setSQLLogger(new Doctrine\DBAL\Logging\EchoSQLLogger());

我的意思是另一种方式。因为这是一个 $config 方法,我想应该可以在 config.yml 中使用它,但是如何呢?

4

1 回答 1

2

您需要填写一些配置参数

doctrine.yaml配置文件中启用日志记录

doctrine:
    dbal:
        logging: true

services.yaml配置文件中设置记录器类

services:
    doctrine.dbal.logger:
        class: Doctrine\DBAL\Logging\EchoSQLLogger

不要忘记在使用前清理 Symfony 缓存php bin/console cache:clear

于 2020-11-01T06:47:51.823 回答