问题标签 [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.
php - Laravel FormRequest 验证获取用户模型,有时直接获取名称
我正在使用 Laravel 8 并使用表单请求验证来验证我的请求。但是,我有一个奇怪的问题。在描述我的问题之前,我将在此处粘贴我的路线和验证类:
路线:
这是我的FormRequest
验证,它检查用户是否有权执行此请求以及给定的数据是否有效。如您所见,我检查是否Auth::user()->name
与请求的用户 ( $this->user->name
) 相同以更改图像。因为只有他的个人资料图片的所有者才应该被允许更改个人资料图片。
现在我来解决这个问题。如您所见,我有几条路线供我的用户使用,一条路线称为user.avatar.valid
,另一条路线称为user.avatar.update
.
两条路线,user.avatar.valid
并user.avatar.update
使用FormRequest
我上面粘贴的验证类。基本上user.avatar.valid
在用户提交表单之前被调用以检查上传的图像是否有效。我知道,我也可以在一个请求中执行此操作,但这是不可能的,因为我正在使用vee-validate
Vuejs 来验证表单是否有效。
但是,这不是这里的问题。问题是,在调用user.avatar.valid
路由时,我的转储会回显所请求用户的requested
密钥name
。但是,在执行请求时,user.avatar.update
我没有得到name
用户的 ,而是object
包含id
、name
等的用户email
。
但这正是重点......当我试图打电话时,user.avatar.update
我得到一个403
错误(禁止),因为$this->user
不等于Auth::user()->name
. 显然,当我将 a string
(name) 与 user进行比较时,它是不一样的object
。
但是,调用user.avatar.valid
它时会通过,因为在这里我得到的是name
when 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
...
有谁知道这里的问题出在哪里以及如何解决这个问题?
亲切的问候,谢谢!
javascript - 如何在存储和更新中创建不同的验证规则,在表单请求 Laravel
在 laravel 中使用请求表单,所以我想在存储和更新期间进行不同的验证,当运行存储方法时,照片字段是必需的,但在更新中我不想在照片字段上提供任何验证,可以谁来帮帮我?
这是我的验证规则
本质上,我只想使用表单请求在 laravel 中的 store 和 update 之间进行不同的验证
laravel - Laravel 表单请求验证返回错误
我正在使用 laravel 表单请求验证来验证从视图到控制器的请求。我正在使用php artisan make:request SpecializedRequest
。但是当验证失败时它不会返回并给出错误 422。我查看了laravel 文档,但我并不真正理解它。我如何确保验证失败它返回到上一页并显示错误消息我的表单请求验证
我的控制器
我的刀片
尝试了同样的结果
validation - 使用 FormRequest 时获取请求类型
我在控制器中的操作我项目中的所有操作在此模式上
我使用 FormRequest
我项目中的所有操作检查请求是否发布或获取
我想使用测试验证以防万一 $request POST
我怎样才能做到这一点?
google-apps-script - 表单请求后的列更改
我的谷歌表格有以下情况。
有时,工作表会更改由表单请求创建的列的预填充标题。我从表格中的表格收集电子邮件地址。因此,表格制作了一个预填充列名称和“电子邮件地址”。然后将收集的数据(使用脚本)复制到概览表中。但是已经发生了我的脚本不起作用,因为我不知道为什么,“电子邮件地址”列的标题更改为“电子邮件地址”。该脚本使用 ....setValue(e.namedValues["Email Address"]) 搜索正确的条目以将其复制到概览中。但是如果将名称更改为“电子邮件地址”,脚本将找不到正确的值。
有人知道为什么这个专栏有时会改变吗?
有一个“提交表单”触发器将数据复制到概览。因此,每次有人填写表格时,脚本都会将数据复制到概览表中。
谢谢你的帮助
乔纳斯
更新:
你好何塞,
无缘无故发送到“电子邮件地址”。
我将“电子邮件地址”与 Google 表单请求中名为“线路经理电子邮件地址”的条目进行比较(由通过表单提出请求的人填写)
代码是
但如果 C 列中的名称被更改,比较功能将不起作用,因为 ["Email Address"] 中的大写 A 更改为小 "a"(["Email address"])。代码由 On-Form-Submit 触发。
所以我的问题是:Spreadsheeds 如何在不进行任何手动更改的情况下更改 c 列的标题名称?
谢谢
乔纳斯
php - laravel 验证,存储和更新唯一值,尝试获取非对象的属性
我使用 laravel 8
我想验证数据并使用一个表单请求来存储和更新它们。
我ignore($this->post->id)
用于更新唯一数据。
更新它有效,但是当我想存储新记录时,给了我错误
Trying to get property 'id' of non-object
这是我的 StorePostRequest :
我怎么能狐狸呢?非常感谢您的帮助:*
php - laravel formrequest 在中间件之前
我知道,这是一个复杂的案例,但也许你们中的一个人可能对如何做到这一点有所了解。
概念
我的 API 中有以下过程:
- 处理查询字符串参数 (
FormRequest
)- 用首选键替换键别名
- 如果需要数组,则将字符串参数映射到数组
- 设置默认值(包括基于
Auth::user()
forid
的参数) - 等等
- 检查是否允许用户执行请求 (
Middleware
)- 使用已处理(已验证和已清理)的查询参数 → 否则我必须对每个可能的别名和映射进行异常处理,并检查是否检查了参数,这对我来说似乎不合理。
问题
然而,如果你只是将中间件分配给->middleware('middlewareName')
路由,并通过依赖注入将 FormRequest 分配给控制器方法,则首先调用中间件,然后调用 FormRequest。如上所述,这不是我需要的。
解决方法
我首先在中间件上尝试了依赖注入,但没有成功。
我的解决方案是在控制器构造函数中分配中间件。依赖注入在这里有效,但突然Auth::user()
返回null
。
然后,我遇到了FormRequest::createFrom($request)
方法 in以及将对象传递给中间件方法\Illuminate\Foundation\Providers\FormRequestServiceProvider.php:34
的可能性。结果如下所示:$request
handle()
但现在该请求尚未验证。只是调用$request->validated()
什么都不返回。所以我深入挖掘了一下,发现$resolved->validateResolved();
已经完成,\Illuminate\Foundation\Providers\FormRequestServiceProvider.php:30
但这似乎并没有触发验证,因为它抛出了一个异常,说这个方法不能被调用,null
但 $request 不是null
:
在 null 上调用成员函数 valid()
现在,我完全被难住了。有谁知道如何解决这个问题,还是我做错了?
提前致谢!
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 方法:
谢谢你 :***
validation - Laravel 表单请求验证的条件
我是 Laravel 的新手。我正在通过表单请求进行验证。但我想设置一个条件,如果检查供应商存在返回 true,则需要检查规则,否则不需要检查。我正在制作 API,所以我希望在 else 部分有一个 JSON 响应。为此,我应该在 else 部分写什么,因为我尝试了很多方法(使用 Trait,授权功能)但给出了错误?