Dcat Admin 通过 $show->relation 调用的关联表格无法导出的解决方法
admin 阅读:69 2024-03-01
在 Dcat Admin 中,如果一个表格是通过 $show->relation 调用的,那么无法正常导出,比如下面的代码在导出的时候会打开一个新的网页,但不会执行导出操作。
protected function detail($id)
{
return Show::make($id, Exam::with(['examinees']), function (Show $show) {
$show->field('title');
$show->relation('考生', function ($model) {
$grid = new Grid(new Examinee());
$grid->model()->where('exam_id', $model->id);
$grid->column('name','性别');
$grid->column('number','准考证号');
$grid->export()//此时无法正常导出
return $grid;
)};
});
}
解决办法是通过自定义页面的方式,将上面的代码修改成下面的方式:
public function show($id,Content $content)
{
return $content->title('考试详情')
->body($this->detail($id))
->body($this->examinees($id));
}
protected function detail($id)
{
return Show::make($id, Exam::with(['examinees']), function (Show $show) {
$show->field('title');
});
}
protected function $examinees($id){
$grid = new Grid(new Examinee());
$grid->model()->where('exam_id', $model->id);
$grid->column('name','性别');
$grid->column('number','准考证号');
$grid->export()//这时就可以正常导出了
return $grid;
}
声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!