Доктрина Symfony пустое отношение в тестах Beat - PullRequest
0 голосов
/ 22 марта 2019

У меня проблема с Beat в Symfony 2. У меня есть две сущности:

// Сделка

DM \ MultiStepFormBundle \ Entity \ Сделка: тип: сущность repositoryClass: DM \ MultiStepFormBundle \ Repository \ Transaction \ TransactionRepository таблица: rb_multistepform_transaction

indexes:
    transaction_id_index:
        columns: [ transaction_id ]

id:
    id:
        type: integer
        generator: { strategy: AUTO }
fields:
    created_at:
        type: datetime
        nullable: false
    transaction_id:
        type: string
        length: 128
        nullable: false
    is_client_new:
        type: boolean
        options:
            default: false
    utm_source:
        type: string
        length: 255
        nullable: true
    utm_medium:
        type: string
        length: 255
        nullable: true
    utm_campaign:
        type: string
        length: 255
        nullable: true
    user_agent:
        type: text
        nullable: true
    http_referer:
        type: string
        length: 255
        nullable: true
    ip:
        type: string
        length: 32
        nullable: true
    status:
        type: smallint
        nullable: false
        options:
            default: 0
    continue_service_run:
        type: boolean
        nullable: false
        options:
            default: false           
    continue_serivce_run_datetime:
        type: datetime
        nullable: true

oneToMany:
    items:
        targetEntity: DM\MultiStepFormBundle\Entity\TransactionItem
        mappedBy: transaction
        cascade: [persist, merge, remove]

manyToOne:
    client:
        targetEntity: DM\KlienciBundle\Entity\Client
        inversedBy: multistepform_transactions
        joinColumn:
            name: client_id
            referencedColumnName: id

// TransactionItem

DM\MultiStepFormBundle\Entity\TransactionItem:
type: entity
repositoryClass: DM\MultiStepFormBundle\Repository\Transaction\TransactionRepository
table: rb_multistepform_transaction_item
id:
    id:
        type: integer
        generator: { strategy: AUTO }

indexes:
    partner_status_index:
        columns: [ partner_name, status ]

fields:
    type:
        type: smallint
        nullable: false
    partner_name:
        type: string
        length: 128
        nullable: true
    status:
        type: smallint
        nullable: false
        options:
            default: 0
    link_id:
        type: integer
        nullable: true
    product_id:
        type: integer
        nullable: true
    pixelconversion_hash:
        type: string
        length: 128
        nullable: true
    partner_api_response:
        type: json_array
        nullable: true
    clicked:
        type: boolean
        nullable: false
        options:
            default: 0
    clicked_datetime:
        type: datetime
        nullable: true
    order_nr:
        type: integer
        nullable: true
    highlighted:
        type: boolean
        nullable: false
        options:
            default: false

manyToOne:
    transaction:
        targetEntity: DM\MultiStepFormBundle\Entity\Transaction
        inversedBy: items
        cascade: [persist, merge, remove]
        joinColumn:
            name: transaction_id
            referencedColumnName: id

Когда я тестирую сервис, где у меня есть такие циклы:

$ Transactions = $ this-> TransactionsRepository-> getTransactionsByContinueServiceRunInDateRange (0, $ minDateTime, $ maxDateTime);

foreach ($transactions as $transactionKey => $singleTransaction) {
    //in this place, relationships are not taken 
    $transactionItems = $singleTransaction->getItems();       
    //when it performs a test query items are downloaded correctly
    $transactionItemsQuery = $this->transactionRepository->getItems($singleTransaction->getId());
}

В котором мне нужно получить предметы из обратного отношения. При обычном звонке на сайт в symfony отношения правильные и все ок. В случае активации теста в Beat, отношения в переменной $actionItems являются пустой коллекцией. Данные, безусловно, существуют в базе данных, потому что в переменной $actionItemsQuery, когда я получаю данные из запроса, у меня есть правильные данные.

Кто-нибудь когда-нибудь сталкивался с чем-то подобным в Беате?

...