[英]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.