2017-01-02 38 views
0

在我的控制器Laravel +條紋調用一個成員函數來創建()對空「訂閱() - >創建」

public function postJoin(Request $request){ 

    $user=Auth::user(); 

    $plan=$request['plan']; 

    $user->subscription($plan)->create($request['token'],['email'=>$users->email]); 
    return Redirect::action('subscripton')->with('notice','Ahora estás registrado'); 
} 

因此錯誤是「對空調用一個成員函數來創建()」 當我做一個

dd($user->subscription($plan)); 

它說也NULL。

問題是訂閱功能。 有什麼幫助嗎?

這裏是我送的jQuery

$(document).ready(function(){ 

Stripe.setPublishableKey('MYKEY'); 

$('#subscription-form button').on('click', function(){ 
    var form    = $('#subscription-form'); 
    var submit    = form.find('button'); 
    var submitInitialText = submit.text(); 
    submit.attr('disabled','disabled').text('Espere un momento...'); 

    Stripe.card.createToken(form, function(status, response){ 
     var token; 
     if (response.error) { 
      //esta parte no responde si hay error 
      form.find('.stripe-errors').text(response.error.message); 
      submit.removeAttr('disabled'); 
      submit.text(submitInitialText); 
     }else{ 

      token=response.id; 
      form.append($('<input type="hidden" name="token">').val(token)); 
      form.submit(); 
     } 
    }); 
}); 

}); 

我看來

@extends('layouts.app') 

@section('content') 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-8 col-md-offset-2"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">Suscribirse</div> 

      <div class="panel-body">  
          {{Form::open(array('url'=>'subscription/join','id'=>'subscription-form'))}} 


          @include('subscription.partials.card') 
          <button class="btn btn-primary">Suscribirse</button> 
          <!-- {{Form::submit('Suscribirse',['class'=>'btn btn-primary'])}} --> 
      {{Form::token()}} 
      {{Form::close()}} 
      </div> 
     </div> 
    </div> 
</div> 

@endsection

進行條帶化,這是我的表單視圖

<div class="stripe-errors panel"></div> 
       <div class="form-group"> 
        {{Form::label('escoge un plan')}} 
        {{Form::select('plan', ['Premium' => 'Grande ($5,000 MXN)', 'Vip' => 'Vip (5,500 MXN)'],null,['placeholder'=>'escoga un plan','class'=>'form-control'])}} 
       </div> 
       <div class="form-group"> 
        {{Form::label('tarjeta de credito')}} 
        {{Form::text('number',null, ['placeholder'=>'0000-0000-0000-0000','class'=>'form-control','data-stripe'=>'number'])}} 
       </div> 
       <div class="form-group"> 
        {{Form::label('Año de expiracion')}} 
        {{Form::text('año',null, ['placeholder'=>'00','class'=>'form-control','data-stripe'=>'exp-year'])}} 
      </div> 
      <div class="form-group"> 
        {{Form::label('mes de expiracion')}} 
        {{Form::text('mes',null, ['placeholder'=>'00','class'=>'form-control','data-stripe'=>'exp-month'])}} 
       </div> 
       <div class="form-group"> 
        {{Form::label('CVC')}} 
        {{Form::text('cvc',null, ['placeholder'=>'000','class'=>'form-control','data-stripe'=>'cvc'])}} 
       </div>  
+0

您應該使用'$ request-> input('var')'而不是'$ request ['var']'來防止代碼注入。 –

回答

1

經常檢查,如果用戶登錄或不:

if (auth()->check()) { 
    // Do something. 
} 

的另一件事是,你應該使用這樣的關係:

$user->subscription()->create(....); 
+0

它被檢查。無論如何,我添加了線條 –

1

我解決問題,此設備 - >

$user->newSubscription('main', $plan)->create($creditCardToken, ['email' =>$email,]); 

但現在它說「這個客戶沒有附加的支付來源」。

myDasbord刷新客戶,但沒有付款。

相關問題