首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UserFrosting:创建各种可以访问数据的仪表板小部件

UserFrosting:创建各种可以访问数据的仪表板小部件
EN

Stack Overflow用户
提问于 2016-07-20 03:46:38
回答 1查看 168关注 0票数 1

UserFrosting: 0.3.1

你好,

我目前正在探索UserFrosting环境和架构。

我正在尝试创建‘小部件’的主仪表板(dashboard.twig),这需要访问各种数据。

例如,显示已登录用户的简单列表的小部件。

默认的主仪表板似乎不能访问数据(除了当前用户),因为瘦配置(index.php)不使用任何控制器。这是正确的吗?

如果我想要使用来自多个控制器(例如用户、组等)的函数/数据,我如何将这些数据传递到主仪表板?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-20 07:30:48

如果您指的是this route for /dashboard,那么您是正确的-默认设置不使用外部控制器类:

代码语言:javascript
复制
$app->get('/dashboard/?', function () use ($app) {    
    // Access-controlled page
    if (!$app->user->checkAccess('uri_dashboard')){
        $app->notFound();
    }

    $app->render('dashboard.twig', []);          
});

你有几个选择。您可以向existing controller class添加新方法,甚至可以创建新的控制器类(请注意,在添加新类之后,需要运行composer update将其添加到自动加载器中)。

或者,您可以直接将您的控制器逻辑添加到上面的路由闭包中。在路由闭包中可以像在控制器类中一样轻松地访问雄辩的模型UserGroup等。

最后(这是我推荐的生成用户列表的方法),您可以首先使用一个请求生成仪表板页面,然后使用单独的请求获取实际数据,使用客户端代码(Javascript)构建列表。这实际上是默认情况下/users页面的工作方式。

您会注意到,如果在浏览器控制台打开的情况下访问/users页面,它会向/api/users发出单独的请求。这将返回一个包含用户列表的JSON对象。例如:

代码语言:javascript
复制
{
    "count": 5,
    "rows": [
        {
            "id": 1,
            "user_name": "admin",
            "display_name": "Overlord",
            "email": "mrdj@userfrosting.com",
            "title": "The New Kid",
            "locale": "en_US",
            "primary_group_id": 2,
            "flag_verified": 1,
            "flag_enabled": 1,
            "flag_password_reset": 0,
            "created_at": "2015-10-21 00:00:00",
            "updated_at": "2016-06-22 17:14:57",
            "last_sign_in_time": "2016-07-19 19:23:49",
            "sign_up_time": "2015-10-01 00:00:00"
        },
        {
            "id": 22,
            "user_name": "armin",
            "display_name": "Armin van Buuren",
            "email": "armin@userfrosting.com",
            "title": "Cannon Fodder",
            "locale": "nl_NL",
            "primary_group_id": 0,
            "flag_verified": 1,
            "flag_enabled": 0,
            "flag_password_reset": 1,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "2015-12-07 12:37:14",
            "last_sign_in_time": 0,
            "sign_up_time": 0
        },
        {
            "id": 20,
            "user_name": "david",
            "display_name": "David Guetta",
            "email": "pierre@userfrosting.com",
            "title": "Pyromancer",
            "locale": "en_US",
            "primary_group_id": 4,
            "flag_verified": 1,
            "flag_enabled": 1,
            "flag_password_reset": 0,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "-0001-11-30 00:00:00",
            "last_sign_in_time": 0,
            "sign_up_time": 0
        },
        {
            "id": 13,
            "user_name": "deadmau5",
            "display_name": "Deadmau5",
            "email": "deadmau5@userfrosting.com",
            "title": "DJ Extraordinaire",
            "locale": "en_US",
            "primary_group_id": 3,
            "flag_verified": 1,
            "flag_enabled": 1,
            "flag_password_reset": 0,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "2016-03-29 14:37:24",
            "last_sign_in_time": 0,
            "sign_up_time": 0
        },
        {
            "id": 23,
            "user_name": "digweed",
            "display_name": "John Digweed",
            "email": "digweed@userfrosting.com",
            "title": "DJ of the Future",
            "locale": "en_US",
            "primary_group_id": 3,
            "flag_verified": 1,
            "flag_enabled": 1,
            "flag_password_reset": 0,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "-0001-11-30 00:00:00",
            "last_sign_in_time": 0,
            "sign_up_time": 0
        }
}

然后,我们使用一些自定义代码herehere来转换这些数据,以便与tablesorter一起使用。这样做的好处是您可以在服务器端执行分页,而不是在一个请求中加载整个用户列表,并在构建整个表时强制用户等待(当您有很多用户时,这可能需要很长时间!)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38467239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档