簡體   English   中英

Laravel 慣性不返回驗證錯誤

[英]Laravel Inertia not returning validation errors

慣性不返回任何驗證錯誤

這是我的 controller 代碼

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    Request::validate([
        'firstName' => ['required', 'string', 'max:100'],
        'lastName'  => ['required', 'string', 'max:100'],
        'shopName'  => ['required', 'string', 'max:100'],
        'email'     => ['required', 'email', Rule::unique('vendors', 'email')],
        'mobile'    => ['required', 'string'],
        'password'  => ['required', 'min:6', 'max:12', 'confirmed']
    ]);

    Vendor::create($request->validated());

    return Redirect::route('vendors.create')->with('success', 'Vendor created.');
}

這是我的 vue 組件代碼

export default {
name: "Create Vendor",
props: {
    auth: Object,
    errors: Object,
},
data() {
    return {
        form: this.$inertia.form({
            firstName: null,
            lastName: null,
            shopName: null,
            email: null,
            mobile: null,
            password: null,
            password_confirmation: null,
        }),
    };
},

methods: {
    store() {
        return this.form.post(this.route("vendors.store"));
    },
},

};

但是提交后報錯 object 總是為空

注意:我還設置了 HandleInertiaRequest 中間件。

在此處輸入圖像描述

請確保這些事情

  • 在 HandleInertiaRequests.php 文件中,中間件來自使用 Inertia\Middleware; 而不是 Laravel 基礎
  • 在 Http/Kernel.php 中,您將 \App\Http\Middleware\HandleInertiaRequests::class 添加到 $middlewareGroups 以折疊所有 Z2567A5EC9705EB7AC2C984033E0 路由16。

檢查app/Providers/AppServiceProvider.php文件中的register方法。

你應該有這樣的Inertia::share

Inertia::share('errors', function () {
 return session()->get('errors') ? session()->get('errors')->getBag('default')->getMessages() : (object) [];
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM