讨论 使用交流 咱们这个系统,如果涉及到多表的联合搜索查询的时候怎么处理呢?

咱们这个系统,如果涉及到多表的联合搜索查询的时候怎么处理呢?

luke832 发表于    阅读:536    回复:3

1,如果涉及到多表的联合搜索查询的时候怎么处理呢?

2,导出电子表格,咱们也没有例子

评论

1 联合查询可使用Laravel的模型关联,参考以下代码。

protected function crud(AdminCRUDBuilder $builder)
{
    MemberFieldUtil::register();
    $builder
        ->init(WenkuDocDownload::with('doc'))
        ->field(function ($builder) {
            /** @var HasFields $builder */
            $builder->id('id', 'ID')->editable(false);
            $builder->display('created_at', '时间')->editable(true);
            $builder->adminMemberInfo('memberUserId', '用户')->memberFieldName(['phone', 'username']);
            $builder->display('doc.title', '文档')->asLink(modstart_web_url('doc/{doc.hash}'));
            $builder->display('creditCost', '积分');
            $builder->display('moneyCost', '金额');
        })
        ->gridFilter(function (GridFilter $filter) {
            $filter->like('doc.title', '文档标题');
            $filter->eq('memberUserId', '用户ID');
            $filter->eq('memberUser.username', '用户名');
            $filter->eq('memberUser.phone', '用户手机');
            $filter->eq('docId', '文档ID');
        })
        ->disableCUD()->canShow(false)
        ->title('文档下载记录');
}


 

2 导出Excel数据,可参考报名管理系统

public function export(ExportHandle $handle)
{
    $headTitles = [
        '票号', '创建时间', '用户ID',
    ];
    return $handle
        ->withPageTitle('导出报名单')
        ->withDefaultExportName('报名单')
        ->withHeadTitles($headTitles)
        ->handleFetch(function ($page, $pageSize, $search, $param) {
            $result = $query->paginate($pageSize, ['*'], 'page', $page)->toArray();
            $list = [];
            foreach ($result['data'] as $item) {
                $one = [];
                $one[] = $item['checkCode'];
                $one[] = $item['created_at'];
                $one[] = $item['memberUserId'];
                $list[] = $one;
            }
            return [
                'list' => $list,
                'total' => $result['total'],
            ];
        })
        ->performExcel();
}


 

多谢多谢

 
1
我来评论
QQ
微信