larave-admin 编辑/增加处理方法如下
关闭laravel全局debug模式异常信息不显示
protected function form()
{
$form->text('nick', __('昵称'))->required();
$form->radio('sex', '性别')->options(['1' => '男', '2' => '女'])->default('0');
$form->tools(function (Form\Tools $tools) {
$tools->disableDelete();
});
$form->saving(function (Form $form) {
/**
* @var UserModel $user
*/
$user = $form->model();
/**
* 检查昵称的唯一性
*/
$user->checkNick($form->nick, $user->id); //此处昵称合法性检查,不通过会抛出异常
});
return $form;
}
$user->checkNick($form->nick, $user->id);
此处昵称合法性检查,不通过会抛出异常,在开启debug模式的情况下异常信息是可以显示出来
修正代码如下尝试
捕获异常的代码
- 这种不可以
return admin_error('操作失败', $ex->getMessage());
- 这种可以解决问题,但是返回会刷新页面,特别是新增的时候很痛苦。
$error = new MessageBag([
'title' => '操作失败',
'message' => $ex->getMessage().$ex->getFile().$ex->getLine(),
]);
return back()->with(compact('error'));
- 添加没有问题,错误信息提示到右上角
但是编辑的时候这个异常不会捕获,编辑还会触发其它的事件
···
return admin_toastr($ex->getMessage(), ‘error‘);
protected function form()
{
$form->text('nick', __('昵称'))->required();
$form->radio('sex', '性别')->options(['1' => '男', '2' => '女'])->default('0');
$form->tools(function (Form\Tools $tools) {
$tools->disableDelete();
});
$form->saving(function (Form $form) {
try{
/**
* @var UserModel $user
*/
$user = $form->model();
/**
* 检查昵称的唯一性
*/
$user->checkNick($form->nick, $user->id);
}catch(\Exception $ex){
return admin_toastr($ex->getMessage(), 'error');
$error = new MessageBag([
'title' => '操作失败',
'message' => $ex->getMessage().$ex->getFile().$ex->getLine(),
]);
return back()->with(compact('error'));
// throw new \Exception($ex->getMessage());
}
});
return $form;
}
- github issue
https://github.com/z-song/laravel-admin/issues/3590
这个方法我没有尝试,因为要改代码,我懒不想改,不想测试。
https://github.com/z-song/laravel-admin/issues/3590
原文地址:https://www.cnblogs.com/zqsb/p/11996851.html
时间: 2024-10-06 22:18:55