[英]How to make a form validation in InertiaJS
我關注此鏈接以獲取inertiaJS
教程。 順便說一句,我正在使用laravel 8
下面這張圖片來自我的網頁。 我不知道為什么我沒有頁面>圖片中的錯誤。 除了我提供的鏈接之外,還有其他方法可以驗證表單嗎?
我在 HTML 中注釋掉了 page.error,因為它導致我出現Error in render: "TypeError: Cannot read property 'email' of undefined"
因為我的 Page.Error 是一個空的 object。
更新:我的 controller 的代碼
腳本代碼
<script>
import Layout from "../../Shared/Layout";
export default {
components: {
Layout,
},
data() {
return {
lead: {
name: "",
email: "",
phone: "",
dob: "",
interested_package: "",
},
};
},
methods: {
async handleSubmit() {
let res = await this.$inertia.post("/leads/save", this.lead);
},
},
};
</script>
應用服務提供商
public function boot()
{
//
Schema::defaultStringLength(255);
Inertia::share([
'errors' => function () {
return Session::get('errors')
? Session::get('errors')->getBag('default')->getMessage()
: (object)[];
}
]);
Inertia::share('flash', function () {
return [
'message' => Session::get('message'),
'success' => Session::get('success'),
'error' => Session::get('error'),
];
});
}
要訪問 email 錯誤,需要通過this
關鍵字添加上下文,即。 this.$page.props.errors.email
。
嘿,我認為您沒有在 Controller 中共享錯誤包,這就是為什么為空,要解決此問題,請將 go 到您的AppServiceProvider並添加此代碼。
Inertia::share([
'errors' => function () {
return Session::get('errors')
? Session::get('errors')->getBag('default')->getMessages()
: (object) [];
},
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.