在 Dcat Admin 中用到了数据详情一对多关联,想在详情页面中的关联表格的“创建”按钮中添加自定义参数,解决方法如下:

需求:

如下图所示,在采购单详情页面的“询价记录”关联表格中,想在创建按钮中添加自定义参数-当前采购单的ID,这样我们就可以直接创建该采购单的询价记录了。

解决方法:

官方文档中只提到了$grid->setResource("inquires");方法用来修改创建以及更新按钮的路由。如果我们直接在该方法中动态拼接参数,访问的链接是不正确的。

对此需求,作者给出了如下两种方案:

方案一,禁用默认的创建按钮,自己添加一个新的(需求较复杂时推荐采用)

$grid->disableCreateButton();

$grid->tools("<a>...");

方案二,可以通过 setConstraints 往创建按钮的 url 后面追加参数(只是追加参数时推荐采用)

$grid->model()->setConstraints([
    'key' => 'value',
]);