如何将 Laravel 错误返回到 Inertiajs/Vue3 应用程序?

问题描述 投票:0回答:1

这里我使用 Laravel 11,并将 Blade 替换为 vue3。 所以我在 Laravel 框架内使用 vue3 并借助惯性Js

控制器

 public function addInfo(Request $request){
        $validatedData = $request->validate([
            'title' => 'required|string|max:25',
            'message' => 'required|string',
            'days' => 'required|integer|min:1',
        ]);
        
        $count= Information::all()->count();
        if($count >= 5){
          
            $error = ([
             'message'=> 'intonation not allowed more then 5 please delete old one',
             'status' => false,
            ]);


            return response()->json($error); 
        }

        $new_info = new Information();
        $new_info->title    = $request->title;
        $new_info->content  = $request->message;
        $new_info->days     = $request->days;
        
        $new_info->links    = json_encode($request->links);
        $new_info->save();
    }

VUE3

const form = useForm({
   title: '',
   message: '',
   days: '',
   links:[],

});

 form.post(route('info.add'), {
        preserveScroll: true,
        onSuccess: () =>{ 
        
          form.reset();
            lastInput.forEach(lastInput => {
              lastInput.remove();
            });
            console.log(error);
          showAlert('success', 'Info added Successfully');
          
        },
        onError: () => {
        
    }
      });

我想知道我怎样才能得到

return response()->json($error)
;在 vue
onError: ()
或任何其他进程中显示以使用 laravel web 路由显示错误

laravel vue.js
1个回答
0
投票

您是否尝试过在 Laravel 控制器上返回错误?例如:

return redirect()->back()->withErrors($error)

那么你的错误应该在 onError 中收到,如下所示:

onError: (errors) => {
   alert(errors.message)
}
© www.soinside.com 2019 - 2024. All rights reserved.