<?php
//和laravel-admin相同
$form->editing(function (Form $form) {});
$form->submitted(function (Form $form) {});
//保存前
$form->saving(function (Form $form) {
//返回错误信息
return \Admin::responseError("xxxx");
});
//保存后
$form->saved(function (Form $form) {});
//删除前
$form->deleting(function (Form $form,$id) {
});
//删除后
$form->deleted(function (Form $form) {
});
//表单验证时回调,用于处理复杂的表单验证
$form->validating(function (Form $form, $validator) {
//-------例如
$validator->sometimes('end_time', 'email', function ($input) {
return true;
});
});
//表单要编辑的数据查询并处理后,可用于对不存在的关联模型字段提供数据
$form->editQuery(function (Form $form,$data) {
//比如我要附加产品sku的数据
$form->editData["goods_sku"] = [
"goods_attrs" => $form->model()->attr_map,
"goods_sku_list" => $form->model()->skus,
];
});
//表单数据保存后,此事件是在数据库事务中触发,如果抛出异常将会回滚
$form->DbTransaction(function (Form $form) {
try {
$model = $form->model();
//比如在产品基本数据保存完毕后,自定义保存产品sku数据
//获取表单提交的数据
$attrs = $form->input("goods_sku.goods_attrs");
//保存逻辑..........
} catch (\Exception $exception) {
abort(400, 'SKU保存失败');
}
});