我有一个 GridView ,我需要显示多个表的数据,每个记录在一行中(不是关系)。 因此,一组网格行可能来自表一,另一组行可能来自表二,等等...
例如,我需要从 tbl1 行(假设 r1 到 r10)中选择,并且从表 tbl2 中选择行(假设 r11 到 r20),r1 到 r10 和 r11 到 r20 可能有很多共同的 id(因为来自不同的表)。我想在单个 GridView 中显示所有这些记录,并启用搜索和操作。
我尝试在 arrayDataProvider 中获取数据,并且效果非常好。 我试图解决的问题有两个: 1. 在网格中启用 searchModel。 (为此,我还获取了 arrayDataProvider 中搜索模型中的所有数据,但仍然需要启用搜索)。 2. 我需要知道选择了哪条记录(查看、更新或删除)并根据选择采取操作,因为相同的 id 可能多次存在于网格中,每次都来自一个表。
最佳答案
启用搜索: 1.我已经使用了所有搜索模型来根据过滤查询返回数组。 2.我使用了一个基本搜索模型,其中包括所有表之间的公共(public)属性,它调用其他搜索模型中的函数以从中获取数组,然后连接所有这些数组并将它们作为数组数据提供程序返回。 3. 处理搜索模型中的参数时需要注意,因为它们使用与基本模型相同的模型,因此有更多的字段。
当我处理行上的 id 和 acyions 时,我将发布该方法。 如果有人遇到同样的问题并需要帮助,我会:-)
关于mysql - Yii2多表网格数据(选择多表记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44621356/