Laravel Eloquent выберите запрос для используемого метода оплаты - PullRequest
0 голосов
/ 10 июня 2018

Я спроектировал 3 таблицы в MySQL Payments, CreditCardPayment, WireTransfer.Таблица платежей имеет столбец payment_mode, в котором хранится используемый способ оплаты (кредитная карта или PayPal).В CreditCardPayment & WireTransfer я сохраняю идентификатор платежа из таблицы платежей.

Теперь, как мне получить все платежи из таблицы платежей в режиме оплаты (данные кредитной карты или таблицы PayPal)?

1 Ответ

0 голосов
/ 10 июня 2018

Вы должны полиморфно связать сущность Платеж с другими сущностями (CreditCardPayment, WireTransfer).

Добавить миграцию для Платежа, добавив следующие столбцы:

  • paymentable_type (string)
  • paymentable_id (целое число)

В Payment.php (сущности) вы должны добавить эту функцию:

public function paymentable() {
    return $this->morphTo();
}

В CreditCardPayment.php вы должны добавить этоfunction:

public function payments(){
    return $this->morphMany(Payment::class, 'paymentable');
}

В WireTransfer.php вам необходимо добавить эту функцию:

public function payments(){
    return $this->morphMany(Payment::class, 'paymentable');
}

Примечание. Метод "Payment" в методе "Payment" - это ваш класс сущности Payment.

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