laravel-8 - 显示错误后应保留表单数据
问题描述
我是惯性 js 的新手,并使用 Laravel 和惯性 js 创建项目,我面临一个问题,即在任何错误显示后表单数据都会被删除。如何防止惯性。
我已经尝试过preserveState。
Vue代码:
<template>
<template #breadcrumb>
<div>
<div>
<button @click="submit">Save</button>
</div>
</div>
</template>
<div>
<div>
<label>Name</label>
<t-input type="text" v-model="form.name" />
<div v-if="errors['name']">{{ errors["name"] }}</div>
</div>
<div>
<label>Comment</label>
<t-input type="text" v-model="form.comment" />
<div v-if="errors['comment']">{{ errors["comment"] }}</div>
</div>
</div>
</template>
<script>
import { Inertia } from '@inertiajs/inertia'
export default {
components: {
Inertia
},
props: {
form: Object,
errors: Object,
},
methods: {
submit() {
Inertia.post(this.route("post.store"), this.form, { preserveState: true });
},
},
};
</script>
控制器代码
public function store(Request $request)
{
$request->validate([
'name' => ['required', 'string'],
'comment' => ['required', 'string'],
]);
$data = [
'name' => $request->get('name'),
'comment' => $request->get('comment'),
];
Post::create($data);
return redirect(route('post'))->with('success', 'Post created.');
}
解决方案
尝试在表单道具上的 Vue 组件绑定中使用表单助手(在此处阅读https://inertiajs.com/forms),而不是传递给 vue 的道具:
<template>
<template #breadcrumb>
<div>
<div>
<button @click="submit">Save</button>
</div>
</div>
</template>
<div>
<div>
<label>Name</label>
<t-input type="text" v-model="myForm.name" />
<div v-if="myForm.error('name')">{{ myForm.error('name') }}</div>
</div>
<div>
<label>Comment</label>
<t-input type="text" v-model="myForm.comment" />
<div v-if="myForm.error('comment')">{{ myForm.error('comment') }}</div>
</div>
</div>
</template>
<script>
import { Inertia } from '@inertiajs/inertia'
export default {
components: {
Inertia
},
props: {
form: Object,
errors: Object,
},
data() {
return {
myForm: Inertia.form(
{
name: this.form.name,
comment: this.form.comment,
},
}
},
methods: {
submit() {
this.myForm.post(this.route("post.store"));
},
},
};
</script>
推荐阅读
- android - 速度问题 android wear
- windows - 在 azure vm 上操作时间
- c# - Https Post C#中的批量请求
- javascript - 尝试使用神殿 direct_upload 为 aws rails 5.2 实现拖放直接上传时出现问题
- docker - Landoop/fast-data-dev:无法建立到节点 -1 的连接
- docker - 在运行进程中使用 docker
- java - 如何将 compareTo 用于泛型。(
, ...) - java - 贷款计算器程序的数学问题
- php - '列'userimage'不能为空'错误仅在较大的图像文件上
- symfony - Symfony 和 TWIG:模板目录的路由无法正常工作