在 Laravel API 中创建包含报告的仪表板

问题描述 投票:0回答:2

我正在开发一个 Laravel API 项目,我正在尝试构建一个包含四个简单报告的仪表板。这些报告从不同的(已经存在的)模型获取数据。所以我想知道应该在哪里为这些报告创建查询。我是否应该创建一个没有模型的仪表板控制器,因为我没有仪表板的数据库表?请就该特定案例场景的最佳实践向我提供建议。我希望保持代码库干净、可维护和可扩展。

laravel api report dashboard code-maintainability
2个回答
0
投票

对于仪表板数据,您可能需要关系和其他方式来获取数据。我最常见的做法是制作 HomeController、视图和模型,然后在用户登录时显示默认页面和显示。我不认为没有模型就能让你做得更好。有了模型,至少你可以通过 ->relation 更清楚地阐明数据来自哪里,而不是使用长代码。 不管怎样,这个主题是特定于项目的,所以你需要确定什么最适合你。


0
投票

更简单的方法是创建一个仪表板控制器并使用 count() 函数,如下所示:

<?php

namespace App\Http\Controllers\Api;

use App\Models\User;
use App\Models\Product;
use App\Models\Order;
use App\Http\Controllers\Controller;

class DashboardController extends Controller
{
    public function index()
    {
        $totalUsers = User::count();
        $totalProducts = Product::count();
        $totalOrders = Order::count();

        return response()->json(['data' => [
            'total_users' => $totalUsers,
            'total_products' => $totalProducts,
            'total_orders' => $totalOrders
        ]]);
    }
}

控制器:

Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index');

响应将是:

{
    "data": {
        "total_users": 21,
        "total_products": 100,
        "total_orders": 51
    }
}

我将使用资源,模型很难处理。这样,您可以更好地控制响应的格式。

制作资源:

php artisan make:resource NameResource 
© www.soinside.com 2019 - 2024. All rights reserved.