在Vue中捕获Laravel验证错误

验证是一种确保从前端表单或请求提交的数据满足您期望的方法,并确保我们在数据库中存储正确的数据。提交表单或请求时,在对该数据运行任何逻辑之前,我们需要确保它满足所有需求。如果数据不符合我们的要求,我们需要告诉用户他们提交的数据有问题,这样他们就可以解决它。这个项目目前,我正在开发一个名为SAAS的应用程序SavvyHouseHunting.com–这是一个允许房地产代理创建和共享360个视频和图像、文档和消息的平台和他们的客户。此应用程序的一个关键区别是它是一个Vue SPA,利用Vue路由器,因此我们无法像在刀片视图中那样使用刀片助手@errors。 在站点的一个区域,允许某些类型的用户\"邀请\"其他人加入他们的团队;收到邀请后,用户需要提供一些必要的用户数据才能开始使用。开始使用 首先,由于我们不希望用户多次接受邀请,因此在生成邀请电子邮件时,我们会创建一个签名的URL,如下所示: 5]);6 $invitation->id]);8Mail::to(request(\"email\"))->send(new InvitationMail(auth()->user(), $link)); 电子邮件将发送给受邀请的用户,并带有签名的URL,当用户单击电子邮件中的链接时,我们将收到该请求并呈现表单。但是为了确保签名是有效的,我们可以使用一个简单的abort_if方法,该方法使用一个布尔值、一个http状态码和一个可选消息发送回用户。更多逻辑 此外,我们需要查找invitation并确保它尚未被接受,模型上有一个accepted列,我们在后面的过程中将其标记为true。另一个需要注意的是,这个被邀请的用户实际上已经存在于我们的系统中,也许他们也属于其他人的团队。这里是accept方法: 1abort_if(!request()->hasValidSignature(), 403, \"YOU CAN\"T DO THAT\");> 3abort_if($invitation->accepted, 403, \"That invitation has already been accepted\"); 4> 6try {> 8$this->createAssociations($user, $invitation, $from);>10$invitation->save();11auth()->login($user);12return redirect(\"/dashboard/communication\");13} catch (ModelNotFoundException $m) {14return view(\"invitation.accept\", compact(\"invitation\"));15} 您可以看到我们正在运行许多实例来验证。中止如果请求没有有效的签名,查找邀请,如果已经接受,则中止,获取被邀请者的电子邮件并尝试在数据库中找到它们,如果是,则可以,创建与邀请者的新关联,将邀请标记为accepted,将它们登录到应用程序并重定向到仪表板,如果没有,Laravel会投8分。我们可以用invitation对象将它们发送到我们的表单。 实例化组件已经足够直接了,我们只需要将邀请作为一个道具传递: 1 在Vue中处理Laravel错误,Vue表单有点长,但本质上,我们正在传递邀请,将邀请对象添加到Vue组件中,并将邀请对象添加到一个隐藏字段中,然后实例化我们对用户的期望: 1props: { 2invitation: { 3type: Object, 4required: true, 5}, 6}, 7data() { 8return { 9user: {10first_name: \"\",11last_name: \"\",12email: \"\",13phone_number: \"\",14password: \"\",15password_confirmation: \"\",16},17errors: null,18};19}, errors对象就是我们将post请求中捕获的任何错误放入的位置。我将Tailwind用于我的所有样式,div看起来是这样的: 1234{{ error }}567 最后,post方法: 1methods: { 2submit() { 3axios 4.post(\"accept-invitation\", { 5user: this.user, 6invitation: this.invitation 7})>>10})13});14},15}, 让我们检查一下处理这个请求的controller方法: 1Route::post(\"accept-invitation\", \"InvitationController@submit\"); Laravel表单请求验证利用Laravel的表单请求,这里我们使用两种方法:**16***和messages()就像这样: **18*** 让我们测试一下,看看如果我们通过了一个不匹配的密码: Voila!我们能够轻松地解析我们的Vue表单中的Laravel验证错误!专业提示! 有一件事我看不到很多人在做,那就是在他们的控制器中使用经过验证的数据,而不是请求数据。一旦数据被验证,您就可以将其设置为只包含作为数组验证的数据的变量。 通常,我看到开发人员验证请求,然后使用请求数据,并假设由于验证通过,数据是正确的。但是如果你忘了验证一个字段呢?您的验证将通过,但数据可能不太好。这种方法将使您的验证更强大,并增加您的代码信心!

admin_action_{$_REQUEST[‘action’]}

do_action( "admin_action_{$_REQUEST[‘action’]}" )动作钩子::在发送“Action”请求变量时激发。Action Hook: Fires when an ‘action’ request variable is sent.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$_REQUEST['action']引用从GET或POST请求派生的操作。源码(Source)更新版本源码位置使用被使用2.6.0 wp-admin/admin.php:...

日期:2020-09-02 17:44:16 浏览:1189

admin_footer-{$GLOBALS[‘hook_suffix’]}

do_action( "admin_footer-{$GLOBALS[‘hook_suffix’]}", string $hook_suffix )操作挂钩:在默认页脚脚本之后打印脚本或数据。Action Hook: Print scripts or data after the default footer scripts.目录锚点:#说明#参数#源码说明(Description)钩子名的动态部分,$GLOBALS['hook_suffix']引用当前页的全局钩子后缀。参数(Parameters)参数类...

日期:2020-09-02 17:44:20 浏览:1088

customize_save_{$this->id_data[‘base’]}

do_action( "customize_save_{$this->id_data[‘base’]}", WP_Customize_Setting $this )动作钩子::在调用WP_Customize_Setting::save()方法时激发。Action Hook: Fires when the WP_Customize_Setting::save() method is called.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_data...

日期:2020-08-15 15:47:24 浏览:826

customize_value_{$this->id_data[‘base’]}

apply_filters( "customize_value_{$this->id_data[‘base’]}", mixed $default )过滤器::过滤未作为主题模式或选项处理的自定义设置值。Filter Hook: Filter a Customize setting value not handled as a theme_mod or option.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_date['base'],指的是设置...

日期:2020-08-15 15:47:24 浏览:916

get_comment_author_url

过滤钩子:过滤评论作者的URL。Filter Hook: Filters the comment author’s URL.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/comment-template.php:32610...

日期:2020-08-10 23:06:14 浏览:945

network_admin_edit_{$_GET[‘action’]}

do_action( "network_admin_edit_{$_GET[‘action’]}" )操作挂钩:启动请求的处理程序操作。Action Hook: Fires the requested handler action.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$u GET['action']引用请求的操作的名称。源码(Source)更新版本源码位置使用被使用3.1.0 wp-admin/network/edit.php:3600...

日期:2020-08-02 09:56:09 浏览:894

network_sites_updated_message_{$_GET[‘updated’]}

apply_filters( "network_sites_updated_message_{$_GET[‘updated’]}", string $msg )筛选器挂钩:在网络管理中筛选特定的非默认站点更新消息。Filter Hook: Filters a specific, non-default site-updated message in the Network admin.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分$_GET['updated']引用了非默认的...

日期:2020-08-02 09:56:03 浏览:884

pre_wp_is_site_initialized

过滤器::过滤在访问数据库之前是否初始化站点的检查。Filter Hook: Filters the check for whether a site is initialized before the database is accessed.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/ms-site.php:93910...

日期:2020-07-29 10:15:38 浏览:844

WordPress 的SEO 教学:如何在网站中加入关键字(Meta Keywords)与Meta 描述(Meta Description)?

你想在WordPress 中添加关键字和meta 描述吗?关键字和meta 描述使你能够提高网站的SEO。在本文中,我们将向你展示如何在WordPress 中正确添加关键字和meta 描述。为什么要在WordPress 中添加关键字和Meta 描述?关键字和说明让搜寻引擎更了解您的帖子和页面的内容。关键词是人们寻找您发布的内容时,可能会搜索的重要词语或片语。而Meta Description则是对你的页面和文章的简要描述。如果你想要了解更多关于中继标签的资讯,可以参考Google的说明。Meta 关键字和描...

日期:2020-10-03 21:18:25 浏览:1782

谷歌的SEO是什么

SEO (Search Engine Optimization)中文是搜寻引擎最佳化,意思近于「关键字自然排序」、「网站排名优化」。简言之,SEO是以搜索引擎(如Google、Bing)为曝光媒体的行销手法。例如搜寻「wordpress教学」,会看到本站的「WordPress教学:12个课程…」排行Google第一:关键字:wordpress教学、wordpress课程…若搜寻「网站架设」,则会看到另一个网页排名第1:关键字:网站架设、架站…以上两个网页,每月从搜寻引擎导入自然流量,达2万4千:每月「有机搜...

日期:2020-10-30 17:23:57 浏览:1336