Учение многие ко многим не работает

У меня есть следующий файл schema.yml, но он просто не работает правильно. Кто-нибудь может указать мне правильное направление, пожалуйста?

ClientPaymentService:
    actAs: { Timestampable: ~ }
    columns:
        clientId: integer
        name: { type: string(100), notnull: true, unique: true }
        paymentServiceId: integer
        config: { type: string(4096), notnull: true }
        cardFormatId: integer
    relations:
        Client:
            local: clientId
            foreign: id
            type: many
            foreignType: one
            foreignAlias: Client
        PaymentService:
            local: paymentServiceId
            foreign: id
            type: many
            foreignType: one
            foreignAlias: ClientPaymentService
        CardFormat:
            local: cardFormatId
            foreign: id
            type: many
            foreignType: one
            foreignAlias: ClientCardFormats
        CountryCode:
            class: CountryCode
            refClass: ClientPaymentServiceCountryCode
            foreign: id            # country_code_id also doesn't work
            local: id

ClientPaymentServiceCountryCode:
    columns:
        client_payment_service_id:
            type: integer
            primary: true
        country_code_id:
            type: integer
            primary: true
    relations:
        ClientPaymentService:
            local: client_payment_service_id
            foreign: id
            foreignAlias: ClientPaymentServiceCountryCodes
        CountryCode:
            local: country_code_id
            foreign: id
            foreignAlias: ClientPaymentServiceCountryCodes

CountryCode:
    actAs: { Timestampable: ~ }
    columns:
        name: { type: string(100), notnull: true, unique: true }
        code: { type: string(10), notnull: true, unique: true }
    relations:
        ClientPaymentService:
            class: ClientPaymentService
            refClass: ClientPaymentServiceCountryCode
            local: id
            foreign: id        # client_payment_service_id also doesn't work

Я получаю следующую ошибку при попытке сохранить что-то в админке:

Unknown record property / related component "id" on "ClientPaymentServiceCountryCode"

Спасибо

1 ответ

Решение

Попробуйте эту ассоциацию:

ClientPaymentService:
.....
    CountryCode:
        class: CountryCode
        refClass: ClientPaymentServiceCountryCode
        foreign: country_code_id         # country_code_id also doesn't work
        local: client_payment_service_id # you must define both directions

ClientPaymentServiceCountryCode:
    columns:
        client_payment_service_id:
            type: integer
            primary: true
        country_code_id:
            type: integer
            primary: true
    // you not have to define relations here

CountryCode:
   ....
        ClientPaymentService:
            class: ClientPaymentService
            refClass: ClientPaymentServiceCountryCode
            local: country_code_id
            foreign: client_payment_service_id      

Я просто следую документации: http://www.doctrine-project.org/projects/orm/1.2/docs/manual/defining-models/ru

Другие вопросы по тегам