计数记录多表的最佳方法 - Laravel

Posted

技术标签:

【中文标题】计数记录多表的最佳方法 - Laravel【英文标题】:Best Way to Count Record Many Table - Laravel 【发布时间】:2020-12-24 07:39:18 【问题描述】:

我想在一个视图中一次显示多个表中的记录数。 我用 eloquent count 试过了。

public function index()
    $order = Order::count();
    $owner = Owner::count();
    $room = Room::count();
    $member = Transaction::where([
        ['status', 'waiting'],
        ['type', 1]
        ])->count();

    $highlight = Transaction::where([
        ['status', 'waiting'],
        ['type', 2]
        ])->count();


    return view('admin.index', [
        'order' => $order,
        'owner' => $owner,
        'room' => $room,
        'member' => $member,
        'highlight' => $highlight
    ]);

有没有更好的办法?

【问题讨论】:

与什么相比更好的方法? 对于事务计数,您可以使用条件和Laravel use multiple where and sum in single clause在单个查询中获取它 【参考方案1】:

您也可以使用view-composers。但这并不是更好,只是不同。我的意思是你无论如何都要查询,那你为什么认为应该有更好的方法呢?

【讨论】:

谢谢。我只是认为有更好的查询方法。假设一个原始查询@Flo 恕我直言,您的方法很好。您可以像这样比较查询:DB::connection()->enableQueryLog(); User::count(); dd(DB::getQueryLog()); 这样您还可以获得查询时间和执行的查询。

以上是关于计数记录多表的最佳方法 - Laravel的主要内容,如果未能解决你的问题,请参考以下文章

连接由公共事实表连接的多个维度表的记录的最佳方法是啥

多表结构的创建与分析

Day45:MySQL(多表的表记录的查询)

更新闭包表的最佳方法是啥?

处理具有数百万条记录更新和大量读数的 MySQL 表的最佳方法

MySQL常用操作--多表联查