问题描述
我正在尝试使用'zii.widgets.grid.CGridView'在管理员视图上实现过滤器。
正如标题所述,数据是通过查询检索的(一个相当复杂的查询,实际上有6个左联接),并将其提供给小部件CArrayDataProvider。
问题是小部件需要一个类来实现过滤器。有没有简单的方法来实现过滤器?我是否应该仅为此目的创建一个类?
我尝试了this post中的提示,但是没有显示任何过滤器让我知道是否有效。
谢谢!
解决方法
我在这个问题上找到了解决方法。
我最后做的是使用datatables package的javascript / jquery过滤器实现。
<table class="table table-striped table-hover" id="extendedTable">
<thead>
<tr>
<th>a_name</th>
<th>b_name</th>
<th>c_name</th>
</tr>
</thead>
<tbody>
<?php foreach ($myData as $data) { ?>
<tr>
<th><?php echo $data["a_name"]; ?></th>
<th><?php echo $data["b_name"]; ?></th>
<th><?php echo $data["c_name"]; ?></th>$data["g_id"]); ?></th>
</tr>
<?php
} ?>
</tbody>
</table>
<script>
$(document).ready(function() {
$('#extendedTable').DataTable(
{
dom: '<"clear">lfrtip',"paging": true,"ordering": true
}
);
});
</script>
其中a,b和c是某些表的别名,而$ myData是具有“扩展模型”的实例的数组。