如何从数据库验证规则比较并请求输入

时间:2019-05-06 05:19:06

标签: laravel

如何将请求输入与数据库进行比较 -exists:users, id,然后将输入的请求与id列上的users表进行比较。

例如,如何比较大于,小于数据库的请求输入: 我的money列为 5 ,我想撤回 6 , 验证必须小于等于5;如果我输入6,则将出错。

因此它将是(my_database_variable> = request_input)。


编辑1

我认为我没有使用自定义验证,因为它可以在 max 上运行。

但是如何在FormRequest(TransactionRequest)上传递参数?

public function rules()
    {
        return [
            "action"        => "required|in:kylder,koul",
            "amount"        => "required|numeric|min:100|max".$max_amount, //<---- how to pass this from controller
            "currency"      => "required|in:kylder,koul",
            "receiver_id"   => "required|exists:users,id",
            "message"       => "sometimes|nullable"
        ];
    }

在我的控制器中,我正在使用它进行验证

public function transaction(TransactionRequest $request)
{
    $max_variable = 20; // <---- I want to pass this on rule()
    $response = $request->validated();
    ...
}

如何将$max_amount的变量传递给rule()

1 个答案:

答案 0 :(得分:0)

在您的验证中使用lte:field,这表明验证必须小于或等于给定的字段。这两个字段必须具有相同的类型。字符串,数字,数组和文件使用与大小规则相同的约定进行评估。