带有用于确认的自定义消息的 Nova 操作 - 需要工具吗?

Nova action with custom message for confirmation - tool required?

在 Nova 文档中,指出字段可用于在调度操作之前要求用户输入。

https://nova.laravel.com/docs/3.0/actions/defining-actions.html#action-fields

public function fields()
{
    return [
        Text::make('Subject'),
    ];
}

这些字段在 handle:

中被引用
public function handle(ActionFields $fields, Collection $models)
{
    foreach ($models as $model) {
        (new AccountData($model))->send($fields->subject);
    }
}

文档中不清楚 AccountData 应该是什么。当我实例化一个模型时,它告诉我 send 未定义。获取包含已定义字段的弹出模式的最简单方法是什么?

您应该做的是使用 artisan nova:action 创建一个新操作,并在该操作字段方法中定义用户应填写的字段。它们的工作方式与资源中的普通字段相同。 然后在您想要执行操作的资源内的操作方法中,将其添加到操作方法中的 return 数组。

例如: 内部资源:

   public    function actions(Request $request)
   {
        return [
            QuickImportAction::make($this->resource, $request)->standalone()
    ];
    )

然后在Nova/Actions/里面生成动作后:

 public function handle(ActionFields $fields, Collection $models)
    {
        if($models->count()>0) return Action::danger("Replace in filters is not ready, unselect and replace in all");
    }

    /**
     * Get the fields available on the action.
     *
     * @return array
     */
    public function fields()
    {
        $replace = "";

        return [
            Heading::make("<div class=' text-secondary'> NOTE! only selected filters rows will be replaced</div>")
                   ->textAlign('center')->asHtml(),
];
)

编辑: 对不起,让我回答你的实际问题。

(new <class>)->method

等同于:

$model = new MyModel();
$model->method()

所以它因应用程序而异。