[已解决]DcatAdmin显示具体某条数据(.show路由)页面,如何做到分栏显示
laravel 10 + dcatadmin 2 + php8.1
我希望能够在具体显示某条数据的页面做到分栏,最终下过如下图
上面截图是我自己P的,就是想要这个结果
我看了下官方文档,知道一个基本的操作,如下
use Dcat\Admin\Layout\Row;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Widgets\Card;
public function show($id,Content $content){
return $content
->header('表格')
->description('表格功能展示')
->body(function (Row $row) {
$row->column(8,Card::make('标题', '内容'));
$row->column(4,Card::make('标题', '内容'));
});
}
这段代码可以实现上面的分栏卡片效果,但是如何在这个卡片里面将详细的数据内容示出来呢?因为无法将 $id
这个参数传进column里面,所以也无法获取到这条数据。
官方文档都直讲到了数据表单的分栏,没有讲如何将这个id传进去获取到具体的数据
我尝试过下面写法,但是也报错
->body(function (Row $row)use($id) {
$row->column(8,Card::make('标题', $this->detail($id)));
$row->column(4,Card::make('标题', '内容'));
})
///上述代码是我自己写的错误代码,已更正,不再报错了
protected function detail($id)
{
return Show::make($id, new ServiceOrder(), function (Show $show) {
$show->field('id');
$show->field('type');
$show->field('number');
$show->field('title');
$show->field('abstract');
$show->field('subject');
$show->field('note');
$show->field('created_at');
$show->field('updated_at');
});
}
报错内容是:Too few arguments to function App\Admin\Controllers\***Controller::App\Admin\Controllers\{closure}(), 1 passed and exactly 2 expected
想请问一下,该如何写代码,才能实现我上面需要的功能呢?求大神指点一下
根据父类的show方法可知,用你下面的写法,body里面的function后面use一下$id就行了