source

Symfony 2 / Dectrine에서 ENUM을 활성화하는 방법

manysource 2023. 10. 22. 20:11

Symfony 2 / Dectrine에서 ENUM을 활성화하는 방법

달릴때doctrine:mapping:import오류가 발생합니다.

알 수 없는 데이터베이스 유형 열거를 요청했습니다. Distrine\DBAL\Platforms\MySqlPlatform이 지원하지 않을 수 있습니다.

제가 설정을 해야 할 것 같습니다.use_native_enum로.true어떻게든.그러나 모든 문서 및 블로그 게시물은 Symfony < 1.4를 참조하고 있습니다.Symfony 2의 해결책은 무엇입니까?

Symfony 2 프로젝트의 경우 이를 의 교리적 구성에 추가합니다.app/config.yml:

doctrine:
    dbal:
        mapping_types: 
            enum:       string 

제 전체 독트린 구성은 다음과 같습니다.

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        mapping_types:
            enum: string
            set: string
            varbinary: string
            tinyblob: text

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

여기서 가져온 코드

그런 다음 실행:

app/console doctrine:schema:update --force --dump-sql --ansi

교의 요리책이 정수를 문자열로 해석하는 방법에 대한 부분적인 답변만을 제공한다는 점을 고려하면, 교의 구성 방식에 관계없이 다음과 같은 사항이 적용되어야 합니다.

오류는 파일 이름을 가리킵니다.Doctrine\DBAL\Platforms\MySqlPlatform.php - 거기에 기본 목록이 함수에 내장되어 있습니다.initializeDoctrineTypeMappings다음과 같이

$this->doctrineTypeMapping = array(
            'tinyint'       => 'boolean',
            'smallint'      => 'smallint',
            'mediumint'     => 'integer',
            'int'           => 'integer',
            (...)

나머지 설정에 관계없이 모든 교리 사용자에 대한 간단한 열거 지원을 추가하는 것은 목록을 다음과 같이 확장함으로써 간단하게 달성할 수 있습니다.

'enum' => 'string'

언급URL : https://stackoverflow.com/questions/8312271/how-to-enable-enums-in-symfony-2-doctrine