簡體   English   中英

Laravel Cashier和Laravel Passport-不能同時調用兩種特征

[英]Laravel Cashier & Laravel Passport - Can't Call both Traits

我正在嘗試創建一個API。 使用Laravel Cashier(帶條紋)和Laravel Passport。

    public $successStatus = 200;
public function index(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required',
        'email' => 'required|email',
        'password' => 'required',
        'c_password' => 'required|same:password',
    ]);
    if ($validator->fails()) {
        return response()->json(['error' => $validator->errors()], 401);
    }
    $input = $request->all();
    $input['password'] = bcrypt($input['password']);
    $user = User::create($input);
    $user = Auth::user();
    $success['token'] = $user->createToken('MyApp')->accessToken;
    $success['name'] = $user->name;
    $success['email'] = $user->email;
    $stripeToken = 'tok_visa';
    \Stripe\Stripe::setApiKey(env(STRIPE_SECRET));

    try
    {
        $user->newSubscription('monthly')->create($stripeToken, [
            'email' => $user->email, 'description' => 'Our First Customer'
        ]);

        return response()->json(['success' => $success], $this->successStatus);
    }
    catch(Exception $e)
    {
        return response()->json(['success' => $success], $this->successStatus);
    }

"message": "Call to a member function createToken() on null",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
"file": "/Users/Taylor/Documents/Websites/storingcompany/api/app/Http/Controllers/Register.php",
"line": 32,
"trace": [

我在這里缺少什么嗎? 我無法從用戶調用“可計費”模型特征。 在我的控制器中,它顯示在Authentiable(而不是Billable)中找不到newSubscription。

我的用戶類別:

namespace App;

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Cashier\Billable;



class User extends Authenticatable
{
use Billable;
use HasApiTokens;
use Notifiable;

這不是因為沒有“使用”特征,而是因為$user變量為null

您有一行代碼可以在數據庫中創建新的用戶記錄。 在下一行,您正在嘗試獲取當前經過身份驗證的用戶。 我認為這是一些注冊或注冊過程,因此不會有經過身份驗證的用戶,因為它們尚不存在於系統中。

$user = User::create(...);
$user = Auth::user();  // what do you expect this to be, besides `null`

$user->anyMethodEver(); // Call to a member function ... on null.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM