为啥这个验证总是需要我?
Posted
技术标签:
【中文标题】为啥这个验证总是需要我?【英文标题】:Why this validation gives me always required?为什么这个验证总是需要我? 【发布时间】:2020-10-11 02:04:40 【问题描述】:可能我做错了什么,我一直在本能地编码哈哈。 Laravel 验证似乎超级容易实现,但由于某种原因,我的 vuejs 组件与我的 php 函数之间总是“需要”。 我是 Laravel 和 Vuejs 的新手,在我看来,我的 php 函数很好(我可以在网上看到),但我可能在 laravel 和 vue 之间的通信上遗漏了一些东西。你能告诉我有什么问题吗?
public function createTag(Request $request)
try
$data = request()->validate([
'title' => 'required'
]);
$tag = new Tag;
$tag->title = $request->title;
if($tag->save())
$tag->usercontracts()->attach($request->usercontractId);
return response()->success(__('success.showing', ['resource' => 'des Vertrags', 'resourceE' => 'tag']), $tag->id, 200);
catch (Exception $e)
return response()->error(__('error.showing', ['resource' => 'des Vertrags', 'resourceE' => 'tag']), 400, $e);
<template>
<div id="relative">
<button @click.prevent="show = 1" v-if="show == 0">+tag</button>
<input type="text" v-model="title" name="title" v-if="show == 1">
<button @click="createTag" v-if="show == 1">add</button>
</div>
</template>
<script>
import TagService from "@/services/TagService";
export default
name: "add-tag-component",
props: ['usercontractId'],
data()
return
title:null,
show:0
;
,
methods:
async createTag()
const body: data = await TagService.createTag(this.title, this.usercontractId);
this.$emit('addedTag', this.title, data);
this.title = '';
this.show = 0;
;
</script>
这是 TagService
export default
createTag(title, usercontractId, tagId)
return Vue.http.post(`contract/createTag/$title/$usercontractId`, tagId);
我也遇到了这个错误。或许这里就是答案?
Vue 警告]:v-on 处理程序中的错误(Promise/async):“[object Object]”
发现于
---> 在资源/资产/js/components/contract/listing/AddTagComponent.vue 在资源/资产/js/components/contract/listing/ContractListingItemComponent.vue 在资源/资产/js/components/contract/listing/ContractListingComponent.vue
【问题讨论】:
【参考方案1】:在您的 TagService
中您需要将 $title
作为有效负载而不是 uri 传递。
export default
createTag(title, usercontractId, tagId)
return Vue.http.post(`contract/createTag/$title/$usercontractId`, tagId);
到
export default
createTag(title, usercontractId, tagId)
return Vue.http.post(`contract/createTag`,
tagId: tagId,
title: title,
usercontractId: usercontractId
);
Laravel 验证你传递的有效载荷。
【讨论】:
非常感谢!我现在可以去睡觉了哈哈。好的,是的,显然我不知道我在用 vuejs 做什么,我需要时间来适应 javascript。再次感谢您。以上是关于为啥这个验证总是需要我?的主要内容,如果未能解决你的问题,请参考以下文章
为啥基本身份验证总是使用 restTemplate 给出错误 403?
为啥输入的验证码明明对了,系统却总是显示:输入的验证码错误?