首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inertiajs - Laravel:如何抛出自定义错误

Inertiajs - Laravel:如何抛出自定义错误
EN

Stack Overflow用户
提问于 2021-09-05 16:35:11
回答 1查看 828关注 0票数 1

如何在Inertiajs.vue中抛出来自Laravel的自定义错误而不重定向呢?

Vue组件:

代码语言:javascript
复制
Inertia.post('company-organisations-create', {
                name: this.newOrganisation.name, 
                description: this.newOrganisation.description
            }, 
            {
                preserveScroll: true,
                onSuccess: (page) => {
                    return Promise.all([
                        window.Toast.success(this.$page.props.toast.message),
                        this.newOrganisation.name = '',
                        this.newOrganisation.description = '',
                    ])
                },
                onError: (errors) => {
                    window.Toast.error(errors.toastMessage)
                }
            });

LaravelController():

代码语言:javascript
复制
    public function createOrganisations(Request $request)
        {
          try {
    
            CompanyOrganisations::create([
                'company_id' => $companyID,
                'name' => $orgName,
                'description' => $orgDescription,
            ]);
           } catch(Excpetion) {
               // Create Inertia Error 'onError'
               /* As example with json response
                  return response()->json([
                     'message' => 'ups, there was an error',
                  ], 403);   */
           }       
    
            return Redirect::route('company.organisations',
            )->with([
                'toastMessage' => 'Organization created!'
            ]);
        }

由于我不能在惯性请求中接收json格式,我需要在Inertiajs.vue组件中抛出一个错误。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-05 16:56:00

试试这个:

代码语言:javascript
复制
try {
// ...
} catch(Excpetion) {
   return redirect()->back()->withErrors([
      'create' => 'ups, there was an error'
   ])
}           

应接收到onError错误

代码语言:javascript
复制
onError: (errors) => {
   window.Toast.error(errors.create)
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69065294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档