Skip to content

SetAction

SetAction 用于设置响应式数据的状态。

基础用法

php
use Lartrix\\Schema\\Actions\\SetAction;

// 设置单个值
SetAction::make('visible', true);

// 设置嵌套值
SetAction::make('form.name', 'John');

// 设置数组值
SetAction::make('list', [1, 2, 3]);

使用场景

控制弹窗显示

php
Modal::make()
    ->show('{{ visible }}')
    ->on('update:show', SetAction::make('visible', '{{ $event }}'));

// 打开弹窗
Button::make('打开')
    ->on('click', SetAction::make('visible', true));

表单数据

php
// 重置表单
Button::make('重置')
    ->on('click', SetAction::make('formData', [
        'name' => '',
        'email' => '',
        'status' => true,
    ]));

切换状态

php
SwitchC::make()
    ->model('status')
    ->on('update:value', SetAction::make('status', '{{ $event }}'));

链式调用

SetAction 支持与其他 Action 组合:

php
Button::make('保存')
    ->on('click', [
        SetAction::make('loading', true),
        FetchAction::make('/api/save')
            ->post()
            ->then([
                SetAction::make('loading', false),
                SetAction::make('visible', false),
            ]),
    ]);

输出格式

php
SetAction::make('visible', true)->toArray();

输出:

json
{
    "action": "set",
    "name": "visible",
    "value": true
}

对于嵌套属性:

php
SetAction::make('form.name', 'John')->toArray();

输出:

json
{
    "action": "set",
    "name": "form.name",
    "value": "John"
}

基于 MIT 许可发布