Отношение Symfony - Doctrine - возвращает реляционную модель с нулевыми значениями. - PullRequest
0 голосов
/ 05 сентября 2018

обо всем по порядку. Я совершенно новичок в Symfony и пытаюсь решить проблему, но не знаю как. Поэтому, если мои вопросы кажутся вам странными, пожалуйста, помогите мне, объяснив, в чем я не прав, и заранее поблагодарив вас.

Итак, в моей БД у меня есть следующие таблицы:

payments, с колонками: id, merchant_sevice_id, customer_id, status, type, created_at, amount_amount, amount_currency. payment_method_payment_method_type, payment_method_payment_method_id, vat и failed_reason.

и

merchant_services со столбцами: id, payment_institution_id, account_id, name, capacity, capabilities, created_at, mid, status и blocked_bins_id.

Две таблицы связаны отношением manyToOne. Таким образом, многие платежи могут принадлежать одному Merchant

Теперь проблема в том, что я пытаюсь получить один Payment и проверить связь с Merchants. Поля Merchant все nulled, а в БД у меня есть значения.

Таким образом, данная запись в таблице payments выглядит следующим образом:

| id                                   | merchant_service_id                  | customer_id                          | status | type | created_at           | amount_amount | amount_currency | payment_method_payment_method_type | payment_method_payment_method_id     | vat | failed_reason |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 0fede82a-b898-4287-83e3-8f7d28d576db | 548d36d9-f1e6-4854-b513-1559b2499b45 | 237369c4-feed-4e24-964a-638938c7940c | failed | SALE |  2018-06-15 07:36:28 | 100           | GBP             | card                               | f35f78c4-2da7-432a-ace5-c0829db448af | 5   |               |

И связанная с этим запись у торговцев такова:

| id                                   | payment_institution_id               | account_id                           | name | capacity | capabilities | created_at          | mid | status | blocked_bins_id                      |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 548d36d9-f1e6-4854-b513-1559b2499b45 | c7a02b53-6c8b-4aa9-b1af-1c5b4978d844 | 4d239c0f-1fa0-4d70-88b4-95b6f05e7bf5 | Test | 0        | ["AUTH"]     | 2018-06-06 06:36:15 | 53  | active | e3d6a222-68cd-468c-a78a-b0da8ff0caf9 |

Тогда вывод моего запроса в БД выглядит так:

enter image description here

Как вы могли видеть, все значения merchantService равны нулю (кроме идентификатора) .

Итак, вопрос в том, что может сделать эту проблему? Может ли быть сериализатор? Это что-то вроде Symfony? На самом деле я ищу подсказку, где искать решение этой проблемы.

Еще раз извините, если мой вопрос слишком утомителен, но я действительно заблокирован и не знаю, как продолжить.

1 Ответ

0 голосов
/ 06 сентября 2018

Как указал iainn в своем комментарии, отношения Doctrine по умолчанию загружаются с отложенной загрузкой (вы можете изменить это, используя fetch="EAGER" в аннотации ManyToOne). Действительно, вы можете легко заметить это на скриншоте, так как объект merchantService имеет свойство __isInitialized__, установленное в false. Это означает, что это прокси-объект класса MerchantService.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...