第一步
增加tab选项卡。并且给每个选项卡设置链接,代码如下:
$grid->header(function () {
$tab = Tab::make();
$tab->addLink('所有客户', '?source_id=0',true);
$tab->addLink('我的客户', '?source_id=1');
$tab->addLink('分享给我', '?source_id=2');
return $tab;
});
看到上面的代码,大家应该知道什么意思了。通过浏览器的参数来判断选项卡和查询条件。
现在我们可以试着访问
页面的确是重新渲染了。
然后现在我们只需要获取浏览器的参数,然后判断不同的查询条件就可以。代码如下
构造方法获取浏览器参数
public function __construct(Request $request)
{
$this->source_id = $request->source_id;
return $this;
}
然后在列表方法里使用
if ($this->source_id == 0) {
$grid->model()->where(查询条件1);
} elseif ($this->source_id == 2) {
$grid->model()->where(查询条件2);
} else {
$grid->model()->where(其他查询);
}
基本已经完成了。
我们还需要完善一下选项卡的默认显示选项,加个判断即可
$grid->header(function () {
$tab = Tab::make();
$tab->addLink('我的客户', '?source_id=1',$this->source_id==1 ? true : false);
$tab->addLink('分享给我', '?source_id=2',$this->source_id==2 ? true : false);
$tab->addLink('公海客户', '?source_id=3',$this->source_id==3 ? true : false);
return $tab;
});
完毕,收工