У меня сильная головная боль при внедрении Laravel Cashier, я успешно создал подписку, зарядил карту, получил токен и сохранил всю указанную информацию в таблице подписки.Laravel Cashier Return Subscription Information
Я делаю это с помощью следующего кода, по какой-то причине стандартные методы не работают:
public function createSubscription(Request $request) {
\Stripe\Stripe::setApiKey('sk_test_XXXXXXXXXXXXXXXXX');
Auth::user('id')->newSubscription('monthly', 'basic')->trialDays(30)->create($request->stripeToken);
Session::flash('message', 'Your subscription has been updated, thank you.');
return view('pages.packages')->with('user', Auth::user());
}
Насколько это отличается от стандартного кода мы сказали, чтобы использовать, это работает! Перемещение, поэтому, когда данные попадают в таблицу, я должен иметь возможность вызвать следующего кассира, чтобы проверить, подписан ли пользователь;
$user->subscribed();
Ofcourse, если мы пойдем по пути мне пришлось структурировать код до того, что мы в конечном итоге с чем-то вроде этого;
Auth::user('id')->subscribed();
Это не работает, он не erroring, оно просто возвращение ложным каждый раз, поэтому, чтобы избежать взглядов и все, что я сделал это;
dd(Auth::user('id')->subscribed());
И все, что показывает, является ложным, независимо от того, пользователь или пакет он включен!
Я чувствую, что в моем User.php есть что-то, что может быть пропало, и мы подключили кассир, чтобы быть частью модели User! Вот так;
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Cashier\Billable;
class User extends Authenticatable
{
use Billable;
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $dates = [
'trial_ends_at', 'subscription_ends_at',
];
}
Теперь я мог бы сделать действительно очевидную ошибку здесь, но это приложение поглощая мое существование здесь, так что любая помощь будет высоко ценится!
Благодаря
«Я делаю это, используя следующий код, по какой-то причине стандартные методы не работают ...« Почему бы вам не начать там? Какие стандартные методы? Почему они не работают? Такая вещь говорит о больших проблемах в вашем приложении, которые должны быть решены. – ceejayoz
Ну, честно говоря, стандартный метод состоял бы в том, чтобы преобразовать меня, часть Auth в переменную $ user ... Так что в этой части есть только небольшая разница. Я прочесываю веб часами, пытаясь понять, как это сделать. \ Есть ли что-нибудь, что вы можете предложить? Благодарности –
Доступ к текущему пользователю можно получить через '$ request-> user()', или вы можете использовать контракты и вложение зависимостей для выполнения функции public function createSubscription (запрос $ request, \ Illuminate \ Contracts \ Auth \ Factory $ user) 'автоматически сделать' $ user' доступным для вашей функции. – ceejayoz