Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.11.2017 23:47:59

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Отрефакторить команду создания строки в таблице в контроллере

Маленький вопрос:

$paypalPayment = isset($webhook->subscription->transactions[0]->paypalDetails);

$user->payments()->create([
’braintree_id’ ⇒ $webhook->subscription->transactions[0]->id,
’braintree_payment_token’ ⇒ $webhook->subscription->transactions[0]->creditCardDetails->token,
’subscription_id’ ⇒ $subscription->id,
’period_start’ ⇒ $webhook->subscription->billingPeriodStartDate,
’period_end’ ⇒ $webhook->subscription->billingPeriodEndDate,
’amount’ ⇒ $webhook->subscription->transactions[0]->amount,
’paypal_email’ ⇒ $paypalPayment ? $webhook->subscription->transactions[0]->paypalDetails->payerEmail: null,
’card_brand’ ⇒ $paypalPayment? null : $webhook->subscription->transactions[0]->creditCardDetails->cardType,
’card_last_four’ ⇒ $paypalPayment? null : $webhook->subscription->transactions[0]->creditCardDetails->last4,
’typer’ ⇒ Payment::TYPE_SALE,
]);

тут если paypal заполнить нужно так, если карта иначе. Автозаполнение модели видимо не поможет… Вынести это все в модель Payment, передавая на вход массив с нужными данными и признак $paypalPayment, но как то не изящно. А как Вы такое пишите?

PS: Код не отформатирован, тк кнопка CODE в последнем хроме не срабатывает…

Изменено htclog81 (11.11.2017 23:48:30)

Не в сети

#2 12.11.2017 08:07:50

Re: Отрефакторить команду создания строки в таблице в контроллере

Такие вещи, наверное, лучше в хорошие практики? Я бы сделал трансформер для данных.

Не в сети

#3 12.11.2017 13:28:49

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Re: Отрефакторить команду создания строки в таблице в контроллере

Да, лучше туда, не нашел сходу тему… А можешь сказать, а что за трансформер и какие данные преобразовывать? Что то типа сеттера?

Вижу не тема, а раздел создан даже…

Изменено htclog81 (12.11.2017 13:33:34)

Не в сети

#4 12.11.2017 13:46:36

Re: Отрефакторить команду создания строки в таблице в контроллере

  1. А можешь сказать, а что за трансформер и какие данные преобразовывать?

Класс, где метод будет трансформировать данные из одного формата в другой, чтобы получилось что-то вроде:

PHP
$user->payments()->create($this->paymentTransformer->papPal($webhook$subscription));

Не в сети

#5 12.11.2017 14:23:33

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Re: Отрефакторить команду создания строки в таблице в контроллере

Немного по другому видимо надо и $this не причем, но идею понял

Не в сети

Подвал раздела