您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
新建项目的数据验证(基于laravel11+inertia的数据验证)
发布时间:2024-11-02 19:51:22编辑:雪饮阅读()
-
关于新建项目的数据验证,这里要分为两个方面。一个是后端一个是前端。
像是之前项目创建的请求验证。那么我们之前这里只是轻微验证了一下,可以发现现在有很多相同的project,那么这里我需要一个新的验证要求,比如同一个用户的project的name是不能相同的。我的意思就是如果有修改的情况下,同一个项目id若修改name时与数据库中已存储的该id对应的name值相同时候是可以修改的,但如果与其他项目的id相同时,name是不允许相同的。
看起来还挺繁琐的,像我之前的通用方法就是查询name是否相同并添加一个条件就是id<>当前id即可。
那么这里有个更好方法。
我们修改这个项目创建验证请求ProjectUpdateRequest.php
中的rules如
public function rules(): array
{
return [
'name' => [
'required',
'string',
'max:255',
Rule::unique(Project::class)->ignore($this->id)
]
];
}
这样看起来就很直观很优雅。
那么接下来是对于inertia前端来说,之前在独立的项目创建页面中表单里面会自动处理显示该错误,而我们继上篇中修改成了按模态框的形式了。所以这里的错误显示还是要稍微修改下。
Index.vue中submit方法修改如:
function submit() {
router.post(`/project`, {
_method: 'patch',
avatar: form.avatar,
name:form.name
},{
onSuccess:()=>{
state.state=false;
},
onError:(errors)=>{
console.log("errors",errors);
form.errors.name=errors.name;
}
})
}
可以看到这里是调用了onError方法回调中拿到error的,拿到后同步到之前的form.errors.name即可。
当然前提是之前的TextInput下边正好有
<InputError class="mt-2" :message="form.errors.name" />
效果如
关键字词:laravel,inertia
相关文章
- 新建项目表单的模态框样式(laravel11+inertia+breeze
- laravel中的一对多关系使用与inertia的link使用
- 列出已有项目分类(laravel11+breeze+inertia实现增与
- 图片上传保存逻辑(laravel11+breeze+inertia+vue3实现
- 更改数据结构的两种方法(laravel的migrate)
- mass-assignment批量赋值异常及期间的注意事项(基于la
- blade视图模板的扩展与复用(laravel的inertia)
- 调试请求数据并创建project(为基于sail的laravel项目
- project-create相关的路由及controller定义(laravel-b
- 前端form组件的介绍(laravel11中的breeze的form实现)