工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

我现在有个页面的数据展示是这样的,每一行的结尾是一些操作按钮,其中有一个是封禁账号的操作按钮:

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?
文档的代码是这样的
Laravel
这里我是用表单弹窗实现的
如果我弹出来的表单需要展示一些数据,比如这样:

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

这里有个问题就是,我那个页面有多少条数据,这里这个封禁原因的option就要查询多少次数据库, 代码如下:

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

BanGrid.php
工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

BanForm.php

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

工具表单 - 弹窗 如果有需要查询的数据怎么解决多次查询问题?

这里能否有好的解决方法只查询一次?
还是根本不应该这样使用?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

没用过 Dcat,不过从 PHP 角度来看,可以在 BanForm 里加一个静态属性 protected static $reasons

然后在 form 方法里先判断这个静态属性是否被赋值,如果没有赋值就从数据库查,否则就直接传给 options 方法

3年前 评论
讨论数量: 6
leo

没用过 Dcat,不过从 PHP 角度来看,可以在 BanForm 里加一个静态属性 protected static $reasons

然后在 form 方法里先判断这个静态属性是否被赋值,如果没有赋值就从数据库查,否则就直接传给 options 方法

3年前 评论

楼上的大佬正解,这里提供另外一个思路,你也可以在new这个action的时候,把查好的数据传递进去,例如

$data = ...;

$grid->actions(new BandGrid(2, $data));
3年前 评论

@Jiangqh

$grid->actions(new BanGrid(2));

这个地方能不能点击才加载模态框的页面? 现在我看应该是一次 load 出来了所有的页面

file

如果我注释掉了上面那行代码,这个 view 的数量就会骤降:

file

所以想问下这个地方能不能点击才加载具体模态框的页面?

file

3年前 评论

@aaromcoding 首先这个是后台,不必关心这点损耗,开了opcache其实没有多少影响;其次如果你想要懒加载模板,可以使用数据表单的弹窗,不过会稍微麻烦一点,具体使用请参考文档表单弹窗章节

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!