Я использую Eloquent через библиотеку подсветки / базы данных, а не Laravel.
У меня есть таблица пользователей, таблица stripe_customer_ids, где я сохраняю идентификатор клиента полосы, когда Stripe генерирует его, и таблицу user_stripe_subscription, где я сохраняюподробности о подписках.
Мне нужно получить идентификатор подписки пользователя в таблице user_stripe_subscription с данными пользователя в таблице пользователей.
Я попытался изменить многие параметры в параметрах внешнего ключа и локального ключа.следуя документации Laravel, но запрос по-прежнему возвращает пустой массив.
Это отношение, которое я установил в модели User:
public function userStripeSubscription() {
return $this->hasManyThrough('\App\Models\UserStripeSubscription', '\App\Models\StripeCustomerId', 'user_id', 'stripe_customer_id', 'id', 'id');
}
В модели StripeCustomerId отношение с моделью Usersetteb by:
public function user() {
return $this->belongsTo(User::class, "user_id", "id");
}
и связь с UserStripeSubscription устанавливается с помощью:
public function userStripeSubscriptions() {
return $this->hasOne(UserStripeSubscription::class, 'stripe_customer_id', 'stripe_customer_id');
}
В модели UserStripeSubscription есть связь с моделью StripeCustomerId:
public function stripeCustomerId() {
return $this->belongsTo(StripeCustomerId::class, "stripe_customer_id", "stripe_customer_id");
}
Очевидно, что таблица правильно заполненапоэтому я ожидаю получить результат с этим кодом:
$user = User::where('id', $userId)->with('userStripeSubscription')->first();
, но я получаю только массив пользователя и пустой массив, например:
["relations":protected]=>
array(1) {
["userStripeSubscription"]=>
object(Illuminate\Database\Eloquent\Collection)#40 (1) {
["items":protected]=>
array(0) {
}
}
}
Заранее спасибо за вашу помощь!