带有用于确认的自定义消息的 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()
所以它因应用程序而异。
在 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()
所以它因应用程序而异。