我正在尝试在资源底部创建一个自定义按钮,该按钮将保存记录,然后获取该记录中的所有信息并将其复制到另一个记录中。
这些重复/复制的信息将让用户快速开始输入另一条记录。目前,“创建”和“更新”页面上的唯一操作是“创建/更新”、“创建/更新”和“添加另一个”,但这两个按钮并不适合所有情况。最后一个选项只提供一个空白表格。我希望将之前输入的信息自动添加到表单中以节省时间。
我知道复制功能。但这需要保存记录并且用户返回到记录,然后选择复制选项。当我让用户一次输入数百个项目时,这个额外的步骤非常耗时。
有人可以帮我找出一种方法来向表单添加额外的按钮,以便我可以扩展创建和更新功能吗?
您是否尝试过对资源使用复制操作?我相信这正是您所寻找的!您可以在 https://nova.laravel.com/docs/resources/
阅读有关复制的更多信息如果您需要一个快速解决方案来预填充新资源的表单字段,其值与上次创建的资源相同,您可以尝试以下操作:
public function fields(NovaRequest $request) {
$latestResource = null;
if ($request->isCreateOrAttachRequest()) {
$latestResource = Account::latest('id')->first();
}
return [
ID::make()->sortable(),
Text::make(__('First Name'), 'first_name')
->withMeta([
'value' => $latestResource ? $latestResource->first_name : $this->first_name
]),
Text::make(__('Last Name'), 'last_name')
->withMeta([
'value' => $latestResource ? $latestResource->last_name ?? $this->last_name
]),
];
}