laravel验证规则max:值不使用变量

时间:2015-07-29 14:51:22

标签: laravel-5 laravel-validation

我是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)验证永远不会失败,它总是继续控制器逻辑!!我做错了什么或我应该做什么?!感谢。

3 个答案:

答案 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"

使用双引号代替单引号。

相关问题