问题标签 [laravel-formrequest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
417 浏览

php - Laravel FormRequest 验证获取用户模型,有时直接获取名称

我正在使用 Laravel 8 并使用表单请求验证来验证我的请求。但是,我有一个奇怪的问题。在描述我的问题之前,我将在此处粘贴我的路线和验证类:

路线:

这是我的FormRequest验证,它检查用户是否有权执行此请求以及给定的数据是否有效。如您所见,我检查是否Auth::user()->name与请求的用户 ( $this->user->name) 相同以更改图像。因为只有他的个人资料图片的所有者才应该被允许更改个人资料图片。

现在我来解决这个问题。如您所见,我有几条路线供我的用户使用,一条路线称为user.avatar.valid,另一条路线称为user.avatar.update.

两条路线,user.avatar.validuser.avatar.update使用FormRequest我上面粘贴的验证类。基本上user.avatar.valid在用户提交表单之前被调用以检查上传的图像是否有效。我知道,我也可以在一个请求中执行此操作,但这是不可能的,因为我正在使用vee-validateVuejs 来验证表单是否有效。

但是,这不是这里的问题。问题是,在调用user.avatar.valid路由时,我的转储会回显所请求用户的requested密钥name。但是,在执行请求时,user.avatar.update我没有得到name用户的 ,而是object包含idname等的用户email

但这正是重点......当我试图打电话时,user.avatar.update我得到一个403错误(禁止),因为$this->user不等于Auth::user()->name. 显然,当我将 a string(name) 与 user进行比较时,它是不一样的object

但是,调用user.avatar.valid它时会通过,因为在这里我得到的是namewhen calling$this->user而不是 user object

但这是为什么呢?

当我更改为时$this->user$this->user->name我在调用路由时获得了用户的实际名称,user.avatar.update但另一方面,500在调用路由时出现错误,user.avatar.valid因为它说Trying to get property 'name' of non-object...

有谁知道这里的问题出在哪里以及如何解决这个问题?

亲切的问候,谢谢!

0 投票
1 回答
44 浏览

javascript - 如何在存储和更新中创建不同的验证规则,在表单请求 Laravel

在 laravel 中使用请求表单,所以我想在存储和更新期间进行不同的验证,当运行存储方法时,照片字段是必需的,但在更新中我不想在照片字段上提供任何验证,可以谁来帮帮我?

这是我的验证规则

本质上,我只想使用表单请求在 laravel 中的 store 和 update 之间进行不同的验证

0 投票
1 回答
3084 浏览

laravel - Laravel 表单请求验证返回错误

我正在使用 laravel 表单请求验证来验证从视图到控制器的请求。我正在使用php artisan make:request SpecializedRequest。但是当验证失败时它不会返回并给出错误 422。我查看了laravel 文档,但我并不真正理解它。我如何确保验证失败它返回到上一页并显示错误消息我的表单请求验证

我的控制器

我的刀片

尝试了同样的结果

0 投票
1 回答
64 浏览

validation - 使用 FormRequest 时获取请求类型

我在控制器中的操作我项目中的所有操作在此模式上

我使用 FormRequest

我项目中的所有操作检查请求是否发布或获取

我想使用测试验证以防万一 $request POST

我怎样才能做到这一点?

0 投票
0 回答
29 浏览

google-apps-script - 表单请求后的列更改

我的谷歌表格有以下情况。
有时,工作表会更改由表单请求创建的列的预填充标题。我从表格中的表格收集电子邮件地址。因此,表格制作了一个预填充列名称和“电子邮件地址”。然后将收集的数据(使用脚本)复制到概览表中。但是已经发生了我的脚本不起作用,因为我不知道为什么,“电子邮件地址”列的标题更改为“电子邮件地址”。该脚本使用 ....setValue(e.namedValues["Email Address"]) 搜索正确的条目以将其复制到概览中。但是如果将名称更改为“电子邮件地址”,脚本将找不到正确的值。

有人知道为什么这个专栏有时会改变吗?

有一个“提交表单”触发器将数据复制到概览。因此,每次有人填写表格时,脚本都会将数据复制到概览表中。

谢谢你的帮助

乔纳斯

更新

你好何塞,

主要问题是,电子表格更改了 C 列在此处输入图像描述

无缘无故发送到“电子邮件地址”。

我将“电子邮件地址”与 Google 表单请求中名为“线路经理电子邮件地址”的条目进行比较(由通过表单提出请求的人填写)

代码是

但如果 C 列中的名称被更改,比较功能将不起作用,因为 ["Email Address"] 中的大写 A 更改为小 "a"(["Email address"])。代码由 On-Form-Submit 触发。

所以我的问题是:Spreadsheeds 如何在不进行任何手动更改的情况下更改 c 列的标题名称?

谢谢

乔纳斯

0 投票
2 回答
100 浏览

php - laravel 验证,存储和更新唯一值,尝试获取非对象的属性

我使用 laravel 8

我想验证数据并使用一个表单请求来存储和更新它们。

ignore($this->post->id)用于更新唯一数据。

更新它有效,但是当我想存储新记录时,给了我错误

Trying to get property 'id' of non-object

这是我的 StorePostRequest :

我怎么能狐狸呢?非常感谢您的帮助:*

0 投票
1 回答
387 浏览

php - laravel formrequest 在中间件之前

我知道,这是一个复杂的案例,但也许你们中的一个人可能对如何做到这一点有所了解。

概念

我的 API 中有以下过程:

  1. 处理查询字符串参数 ( FormRequest)
    • 用首选键替换键别名
    • 如果需要数组,则将字符串参数映射到数组
    • 设置默认值(包括基于Auth::user()forid的参数)
    • 等等
  2. 检查是否允许用户执行请求 ( Middleware)
    • 使用已处理(已验证和已清理)的查询参数 → 否则我必须对每个可能的别名和映射进行异常处理,并检查是否检查了参数,这对我来说似乎不合理。

问题

然而,如果你只是将中间件分配给->middleware('middlewareName')路由,并通过依赖注入将 FormRequest 分配给控制器方法,则首先调用中间件,然后调用 FormRequest。如上所述,这不是我需要的。

解决方法

我首先在中间件上尝试了依赖注入,但没有成功。

我的解决方案是在控制器构造函数中分配中间件。依赖注入在这里有效,但突然Auth::user()返回null

然后,我遇到了FormRequest::createFrom($request)方法 in以及将对象传递给中间件方法\Illuminate\Foundation\Providers\FormRequestServiceProvider.php:34的可能性。结果如下所示:$requesthandle()

但现在该请求尚未验证。只是调用$request->validated()什么都不返回。所以我深入挖掘了一下,发现$resolved->validateResolved();已经完成,\Illuminate\Foundation\Providers\FormRequestServiceProvider.php:30但这似乎并没有触发验证,因为它抛出了一个异常,说这个方法不能被调用,null但 $request 不是null

在 null 上调用成员函数 valid()

现在,我完全被难住了。有谁知道如何解决这个问题,还是我做错了?

提前致谢!

0 投票
1 回答
82 浏览

json - 如何在 laravel 8 中为 API 返回验证规则和消息作为 JSON

我正在构建一个 API,我想使用表单请求验证输入字段。

我不知道如何在控制器的 store 方法中将消息和规则作为 json 返回

我希望在字段重复或为空时进行验证。

当 return$message$rules json withreturn response()->json($message)给出错误并说:TypeErrors : Arguments 2 passed , must be of the type array , object given

我检查了这个链接,它没有帮助https://laracasts.com/discuss/channels/laravel/how-to-send-validation-errors-as-json-to-view

我的 StoreCategoryRequest :

这是我在 CategoryController 中的 store 方法:

谢谢你 :***

0 投票
1 回答
78 浏览

validation - Laravel 表单请求验证的条件

我是 Laravel 的新手。我正在通过表单请求进行验证。但我想设置一个条件,如果检查供应商存在返回 true,则需要检查规则,否则不需要检查。我正在制作 API,所以我希望在 else 部分有一个 JSON 响应。为此,我应该在 else 部分写什么,因为我尝试了很多方法(使用 Trait,授权功能)但给出了错误?

0 投票
2 回答
114 浏览

laravel - 验证失败时未出现 Laravel 表单请求消息

我的商店方法

表单请求

验证正在工作,我在控制器中收到确认消息,但是当验证失败时,我没有收到任何错误消息任何建议?