(Eloquent) 显示客户的所有订阅,即使他没有付款
(Eloquent) Show all the subscriptions of a client even if he has not made any payments
我有 4 个表,客户、计划、订阅和付款。
我想获取客户的所有订阅、他的计划以及他是否已付款,我已经尝试过此查询,但它没有按预期工作。
$data = Subscription::select('subscription_id')
->leftjoin('clients', 'clients.id', '=', 'subscriptions.client_id')
->leftjoin('plans', 'plans.id', '=', 'subscriptions.plan_id')
->leftjoin('payments', 'subscriptions.id', '=', 'subscriptions.id')
->where('clients.id', $id)
->get();
如果我是你,我会利用关系并这样做:
- 创建客户端订阅关系(1-to-many)
- 创建订阅计划关系(一对一)
- 创建订阅支付关系(1-to-many)
然后,检索所有内容的代码如下所示:
$client = Client::find($id);
$client->subscriptions()
->with(['plan', 'payments'])
->get();
要了解有关 laravel 关系的更多信息,请查看此 link:https://laravel.com/docs/9.x/eloquent-relationships
我有 4 个表,客户、计划、订阅和付款。
我想获取客户的所有订阅、他的计划以及他是否已付款,我已经尝试过此查询,但它没有按预期工作。
$data = Subscription::select('subscription_id')
->leftjoin('clients', 'clients.id', '=', 'subscriptions.client_id')
->leftjoin('plans', 'plans.id', '=', 'subscriptions.plan_id')
->leftjoin('payments', 'subscriptions.id', '=', 'subscriptions.id')
->where('clients.id', $id)
->get();
如果我是你,我会利用关系并这样做:
- 创建客户端订阅关系(1-to-many)
- 创建订阅计划关系(一对一)
- 创建订阅支付关系(1-to-many)
然后,检索所有内容的代码如下所示:
$client = Client::find($id);
$client->subscriptions()
->with(['plan', 'payments'])
->get();
要了解有关 laravel 关系的更多信息,请查看此 link:https://laravel.com/docs/9.x/eloquent-relationships