我是laravel的新手,我正在尝试使用max:value规则从输入请求中验证某个字段,事实是该值既不是静态值也不是我的请求输入中的字段,它是我从我的数据库中检索并存储在变量$ available中的值,每当我尝试('count'=> required | numeric | max:$ available)时,验证总是在最大值上失败,就好像它无法评估该变量$可用,但是当我尝试使用不是这种情况的静态值(例如'count'=> required | numeric | max:5)它工作得很好,我也尝试将$ available与我的输入字段合并请在验证前使用“$ request-> merge([' availableCount' => $ availableRoom-> count]); “然后我尝试在我的规则中使用字段'availableCount'而不是变量(例如'count'=> required | numeric | max:availableCount)验证永远不会失败,它总是继续控制器逻辑!!我做错了什么或我应该做什么?!感谢。
答案 0 :(得分:0)
使用
‘count’ => "required|numeric|max:$available"
而不是
‘count’ => 'required|numeric|max:$available'
当您使用单引号时, $ available 不会被评估,因此您传递给验证程序的字面意思是 max:$ available 。
答案 1 :(得分:0)
如果这不起作用,则会进行小规模更新。
尝试:
'count' => 'required|numeric|max:{$available}'
答案 2 :(得分:0)
有点晚了,以防万一有人需要这个
在 Laravel 8 中这是有效的:
'count' => "required|numeric|max:$available"
使用双引号代替单引号。