叶子本地使用如下环境:

Laravel:5.5,

Laravel-Admin:1.7.14

iframe-tabs:1.3.4

在更新iframe-tabs之前。使用Laravel-Admin官方文档方法是可以正常抛出的,大致如下:

$form->saving(function (Form $form) {

    // 抛出异常
    throw new \Exception('出错啦。。。');

});

亦或者使用如下方法:

use Illuminate\Support\MessageBag;

// 抛出错误信息
$form->saving(function ($form) {

    $error = new MessageBag([
        'title'   => 'title...',
        'message' => 'message....',
    ]);

    return back()->with(compact('error'));
});

// 抛出成功信息
$form->saving(function ($form) {

    $success = new MessageBag([
        'title'   => 'title...',
        'message' => 'message....',
    ]);

    return back()->with(compact('success'));
});

使用如上方法的时候,本地调试就遇到return的错误抛出完全不生效。所以,最后只能使用一个临时的方法,来进行异常抛出,并关闭当前新增弹窗:

 exit("<script>var index = parent.layer.getFrameIndex(window.name);parent.layer.close(index);parent.toastr.error('$err')</script>");