У меня есть отношение «многие ко многим» между таблицами «Пользователь» и «Подписка» в Laravel:
В Subscription.php:
public function users()
{
return $this->belongsToMany('App\User')->withTimestamps();
}
В User.php
public function subscriptions()
{
return $this->belongsToMany('App\Subscription')->withTimestamps();
}
Я создаю новую подписку в «Кассе» (используя Stripe) следующим образом:
$user->newSubscription($planname, $planname)->create();
(Обратите внимание, что названия продуктов и планов в настоящее время совпадают, а карта пользователя записана,отсюда и отсутствие жетона в полоску.)
Но когда я запускаю это, я получаю ошибку:
SQLSTATE [HY000]: Общая ошибка: 1364 Поле 'user_id' не имеет значения по умолчаниюзначения (SQL: вставить в subscriptions
(name
, stripe_id
, stripe_plan
, quantity
, updated_at
, created_at
) значения (проекты, sub_EY1zRywZ1jUjLl, проекты, 1, 2019-02-17 20: 07: 36, 2019-02-17 20:07:36))
Я не уверен, что причиной проблемы являются отношения или это мой новый код подписки.Как я могу исправить эту ошибку?
ОБНОВЛЕНИЕ:
Я внес следующее изменение, и я все еще получаю ту же ошибку:
$user->newSubscription($planname, $planname)->create(null,[
'user_id' => $user->id,
]);
ОБНОВЛЕНИЕ 2:
Я внес следующее изменение, и по-прежнему возникает та же самая ошибка:
$id = Auth::id();
$user = User::find($id);
// $user = Auth::user();