#laravel #laravel-5 #stripe-payments #laravel-5.3 #laravel-cashier
#laravel #laravel-5 #stripe-платежи #laravel-5.3 #laravel-кассир
Вопрос:
В Laravel 5.1
с помощью Cashier ~5.0
я использовал для получения сведений о клиенте Stripe для этого пользователя следующим образом:
$customer = $user->subscription()->getStripeCustomer();
После обновления до Laravel 5.3
с помощью Cashier ~7.0
я изменил приведенную выше строку в controller на эту:
$customer = $user->subscription('main')->getStripeCustomer();
После обновления я теперь получаю сообщение об ошибке:
BadMethodCallException in Builder.php line 2440:
Call to undefined method IlluminateDatabaseQueryBuilder::getStripeCustomer()
Как я могу получить данные о клиенте Stripe в Laravel 5.3
с Cashier ~7.0
помощью?
Ответ №1:
Вы можете получить клиента Stripe с $user->asStripeCustomer()
Комментарии:
1. Я попробовал ваше предложение @DamirMiladinov, но я получаю аналогичную ошибку:
BadMethodCallException in Builder.php line 2440: Call to undefined method IlluminateDatabaseQueryBuilder::asStripeCustomer()
. Знаете ли вы, что именно означает ошибка? Когда я искал исходный код cashier в,cashier/src/SubscriptionBuilder.php
я вижуgetStripeCustomer()
метод. Итак, я не уверен, почему отображается ошибка и что именно она говорит.2. Привет, @DamirMiladinov, ты абсолютно прав.
$user->asStripeCustomer()
сработало. Я был неправ, когда попробовал это сначала. В спешке, чтобы попробовать ваше предложение, я ошибочно использовал его как$user->subscription('main')->asStripeCustomer()
. Вот почему метод не сработал, поскольку связь была неправильной. Перечитав ваш ответ еще раз, я понял, как я был неправ. Изменение его на$user->asStripeCustomer()
сработало, и я смог получить информацию о клиенте stripe в виде массива. Большое вам спасибо. Вы такой спаситель.3. СПАСИБО, сэр! не удалось найти его больше нигде