laravel - Laravel Nova 在 newModel() 中创建一个带有动作的模型
问题描述
我在带有 Nova 3.22 的 Laravel 8 中。我有一个表,其中包含一个字段,该字段在数据库事务中使用序列号自动填充,并且为了强制我CreateProduct
定义了一个包含该资源创建的操作。在任何需要创建该模型的新实例的地方,我都会调用动作,并且我需要在 Nova 中执行相同的操作。我找到了newModel()
覆盖的方法,但它有两个问题。
public static function newModel()
{
$instance = new CreateProduct(
new \App\Models\Sku(), //Placeholder
\App\Models\Product::STATUS_DEFAULT,
null
);
return $instance->handle();
}
首先,这个方法被调用create
(显示输入表单)以及store
存储操作。这意味着我最终会收到两次调用我的操作,在我的数据库中创建虚假序列号。如果我不这样覆盖newModel
,它会创建完全没有序列号的记录。我可以选择 0 或 2 个电话,但我只想要 1 个!
第二个问题是相关的;显示表单时,它会调用newModel
,但我必须将占位符数据用于操作所需的参数,因为这些字段(显然)尚未设置,但我需要第二次用实际提交的值替换这些占位符,我不确定我会怎么做。
我觉得我一定错过了一些东西——有没有类似的东西newModel
,但这只是为了store
手术而需要的吗?
解决方案
推荐阅读
- azure - 无法将子文件夹部署到 Azure 应用服务
- python - numpy中的变量赋值不起作用?
- python - if else 函数导致 ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- html - How do I center table text both horizontally and vertically?
- javascript - Array.splice 重复编辑和插入后,意外结果
- php - 如何在谷歌任务 api 中添加新任务
- r - 使用 R 提取每家道琼斯 30 指数公司的数据
- kubernetes - Google Kubernetes engine inter-cluster session affinity(Sticky Session)
- macos - 按下回车键后停止在 NSTextField 中突出显示文本(alt:跳转到行尾)
- html - 在下拉菜单中添加社交按钮