Php 拉威尔+;对null上的成员函数create()的条带调用;订阅()->;创建;

Php 拉威尔+;对null上的成员函数create()的条带调用;订阅()->;创建;,php,laravel,stripe-payments,laravel-cashier,Php,Laravel,Stripe Payments,Laravel Cashier,在我的控制器上 public function postJoin(Request $request){ $user=Auth::user(); $plan=$request['plan']; $user->subscription($plan)->create($request['token'],['email'=>$users->email]); return Redirect::action('subscripton')->

在我的控制器上

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');
}
因此,错误是“调用null上的成员函数create()” 当我做一个

dd($user->subscription($plan));
它说也为空

问题在于订阅功能。 需要帮忙吗

这里是我用Jquery发送到stripe的地方

$(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();
        }
    });
});

});
$(文档).ready(函数(){
Stripe.setPublishableKey('MYKEY');
$(“#订阅表单按钮”)。在('单击',函数()上{
变量形式=$(“#认购形式”);
var submit=form.find('button');
var submitinialtext=submit.text();
submit.attr('disabled','disabled').text('Espere un momento…');
Stripe.card.createToken(表单、函数(状态、响应){
var代币;
if(response.error){
//esta parte无响应si hay错误
form.find('.stripe errors').text(response.error.message);
submit.removeAttr(“禁用”);
submit.text(submititialtext);
}否则{
token=response.id;
附加($('').val(标记));
表单提交();
}
});
});
});
我的看法

 @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>
@extends('layouts.app'))
@节(“内容”)
寄托
{Form::open(数组('url'=>'subscription/join','id'=>'subscription-Form'))}
@包括('subscription.partials.card')
寄托
{{Form::token()}}
{{Form::close()}}
@端部

这是我的表单视图

   <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>      

{{Form::label('escoge un plan')}
{Form::select('plan',['Premium'=>'Grande($5000 MXN)','Vip'=>'Vip(5500 MXN)'),null,['placeholder'=>'escoga un plan','class'=>'Form-control'])}
{{Form::label('tarjeta de credito')}
{{Form::text('number',null,['placeholder'=>'0000-0000-0000','class'=>'Form-control','data-stripe'=>'number'])}
{{Form::label('Año de expiracion')}
{Form::text('año',null,['placeholder'=>'00','class'=>'Form-control','data-stripe'=>'exp-year'])}
{{Form::label('mes de expiracion')}
{Form::text('mes',null,['placeholder'=>'00','class'=>'Form-control','data-stripe'=>'exp-month'])}
{{Form::label('CVC')}
{Form::text('cvc',null,['placeholder'=>'000','class'=>'Form-control','data-stripe'=>'cvc'])}

始终检查用户是否登录:

if (auth()->check()) {
    // Do something.
}
另一件事是你应该使用这样的关系:

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

始终检查用户是否登录:

if (auth()->check()) {
    // Do something.
}
另一件事是你应该使用这样的关系:

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

我用这句话解决了问题->

$user->newSubscription('main', $plan)->create($creditCardToken, ['email' =>$email,]);
但现在它说“这个客户没有附加的付款来源”


myDasbord刷新了客户,但没有付款。

我用这一行解决了问题->

$user->newSubscription('main', $plan)->create($creditCardToken, ['email' =>$email,]);
但现在它说“这个客户没有附加的付款来源”


myDasbord刷新客户,但没有付款。

已选中。不管怎样,我添加了一行,这是检查过的。无论如何,我添加了一行,您应该使用
$request->input('var')
而不是
$request['var']
来防止代码注入。您应该使用
$request->input('var')
而不是
$request['var']
来防止代码注入。