(雄辩)显示客户的所有订阅,即使他没有付款

发布于 2025-01-10 18:58:24 字数 533 浏览 0 评论 0原文

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();

relationships

I have 4 tables, Clients, Plans, Subscriptions, and Payments.

I would like to get all the subscriptions of a client, his plan and if he has any payment made, I have tried this query, but it does not work as expected.

$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();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

混浊又暗下来 2025-01-17 18:58:24

如果我是你,我会利用关系并这样做:

  • 创建客户端到订阅关系(一对多)
  • 创建订阅到计划关系(一对一)
  • 创建订阅到付款关系(一对一)许多)

然后,检索所有的代码如下所示:

$client = Client::find($id);

$client->subscriptions()
    ->with(['plan', 'payments'])
    ->get();

要了解有关 Laravel 关系的更多信息,请查看此链接:https://laravel.com/docs/9.x/eloquent-relationships

If I were you, I'd utilize relationships and do it like this:

  • Create client to subscription relationship(1-to-many)
  • Create subscription to plan relationship(1-to-1)
  • Create subscription to payment relationship(1-to-many)

And then, the code to retrieve all will look like the following:

$client = Client::find($id);

$client->subscriptions()
    ->with(['plan', 'payments'])
    ->get();

To learn more about laravel relationships, check out this link: https://laravel.com/docs/9.x/eloquent-relationships

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文