1. <?php
    2. //和laravel-admin相同
    3. $form->editing(function (Form $form) {});
    4. $form->submitted(function (Form $form) {});
    5. //保存前
    6. $form->saving(function (Form $form) {
    7. //返回错误信息
    8. return \Admin::responseError("xxxx");
    9. });
    10. //保存后
    11. $form->saved(function (Form $form) {});
    12. //删除前
    13. $form->deleting(function (Form $form,$id) {
    14. });
    15. //删除后
    16. $form->deleted(function (Form $form) {
    17. });
    18. //表单验证时回调,用于处理复杂的表单验证
    19. $form->validating(function (Form $form, $validator) {
    20. //-------例如
    21. $validator->sometimes('end_time', 'email', function ($input) {
    22. return true;
    23. });
    24. });
    25. //表单要编辑的数据查询并处理后,可用于对不存在的关联模型字段提供数据
    26. $form->editQuery(function (Form $form,$data) {
    27. //比如我要附加产品sku的数据
    28. $form->editData["goods_sku"] = [
    29. "goods_attrs" => $form->model()->attr_map,
    30. "goods_sku_list" => $form->model()->skus,
    31. ];
    32. });
    33. //表单数据保存后,此事件是在数据库事务中触发,如果抛出异常将会回滚
    34. $form->DbTransaction(function (Form $form) {
    35. try {
    36. $model = $form->model();
    37. //比如在产品基本数据保存完毕后,自定义保存产品sku数据
    38. //获取表单提交的数据
    39. $attrs = $form->input("goods_sku.goods_attrs");
    40. //保存逻辑..........
    41. } catch (\Exception $exception) {
    42. abort(400, 'SKU保存失败');
    43. }
    44. });