2016-09-22 3 views
-1

У меня сильная головная боль при внедрении 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', 
]; 
} 

Теперь я мог бы сделать действительно очевидную ошибку здесь, но это приложение поглощая мое существование здесь, так что любая помощь будет высоко ценится!

Благодаря

+0

«Я делаю это, используя следующий код, по какой-то причине стандартные методы не работают ...« Почему бы вам не начать там? Какие стандартные методы? Почему они не работают? Такая вещь говорит о больших проблемах в вашем приложении, которые должны быть решены. – ceejayoz

+0

Ну, честно говоря, стандартный метод состоял бы в том, чтобы преобразовать меня, часть Auth в переменную $ user ... Так что в этой части есть только небольшая разница. Я прочесываю веб часами, пытаясь понять, как это сделать. \ Есть ли что-нибудь, что вы можете предложить? Благодарности –

+0

Доступ к текущему пользователю можно получить через '$ request-> user()', или вы можете использовать контракты и вложение зависимостей для выполнения функции public function createSubscription (запрос $ request, \ Illuminate \ Contracts \ Auth \ Factory $ user) 'автоматически сделать' $ user' доступным для вашей функции. – ceejayoz

ответ

2

со многими благодаря @ceejayoz ответ на этот маленький вопрос не назвать фактический идентификатор плана, который сохраняется в полосе, то называть («ежемесячно») вместо этого!

$user->subscribed('monthly'); 
+0

Какая глупая установка это ??? Чтобы передать имя подписки вместо id ??? Господь Бог. Я потратил 3 часа, пытаясь понять, почему все, что связано с подписками, является нулевым для моих моделей. Клянусь, что я случайно прочитал ваш ответ, вы, наверное, спасли мне день работы. –

Смежные вопросы