2014-09-13 123 views
1

當我創建新訂閱時,Laravel Cashier未設置subscription_ends_at字段。現在我已經擺弄了幾天,我認爲它在一開始就工作了,但我不得不再次調用我們正在處理的存儲庫並丟失了更改,並且我再次安裝並配置了所有內容,現在它不會設置該領域。但是,如果我指定了試用期,它會設置trial_ends_at。Laravel Cashier/Stripe not setting subscription_ends_at

這是一個年度計劃,我們想通知我們的用戶更新日期。

用戶模型:

use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableInterface; 

use Laravel\Cashier\BillableTrait; 
use Laravel\Cashier\BillableInterface; 

class User extends Eloquent implements UserInterface, RemindableInterface, BillableInterface { 


    use BillableTrait; 

    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'users'; 


    protected $dates = ['trial_ends_at', 'subscription_ends_at']; 

用於創建訂閱的控制方法:

public function postConfirmSubscription() 
    { 
     $user = Auth::user(); 
     $user->subscription('premium')->create(Input::get('token.id')); 
    } 

預先感謝任何幫助。

回答

5

Laravel Cashier不會設置subscription_ends_at字段,除非該訂閱被取消。它旨在管理寬限期(一旦訂閱被取消,用戶將有權訪問該日期),不通知用戶其下一個付款日期或剩餘的活動訂閱時間。正如我最初的想法。

當您測試取消過程時,您可能實際上已經看到該字段已填充。

我擔心你必須爲此設置一個額外的字段,讓我們說「next_payment_at」,並「手動」更新它,無論是在控制器或模型級別。