【问题标题】:Validate user balance Laravel验证用户余额 Laravel
【发布时间】:2018-12-23 04:16:43
【问题描述】:

在表用户我有列balance

我在控制器上有方法:

public function orderPayout(Request $request) {
    $request->validate([
        'sum' => 'required|integer|min:20|max:15000'
    ]);
}

此方法取一笔订单付款。

我如何验证余额用户Auth::user()->balance 如果 > 20 且

【问题讨论】:

  • 你能说得清楚一点吗?您想如何处理用户余额?
  • @vivek_23 我想在 [20, 15000] 之间验证他,如何验证总和
  • sum 已验证。你想检查用户余额是否在20到15000之间,但是sum和用户余额是什么关系?
  • sum 是表单的字段,这是输入,用户在其中写入支付金额。是的,我想检查用户余额是否在 20 到 15000 之间
  • if(Auth::user()->balance >= 20 && Auth::user()->balance <= 15000)

标签: php laravel


【解决方案1】:

您可以使用between 验证规则。

'sum' => 'required|between:20,15000'

更新:

public function orderPayout(Request $request) {
    $request->merge(['sum' => $request->user()->balance]);

    $request->validate([
        'sum' => 'required|between:20,15000'
    ]);
}

【讨论】:

  • 这是表单上的字段,但不是用户余额
  • 那么,您必须从您的请求中获取相关用户。如果是当前登录用户,则可以修改请求以获取当前登录用户并将余额合并为输入。
  • 但是这个 ($request->merge) 不会覆盖当前总和?
  • 是的,它会合并当前表单,你到底想达到什么目的?!是检查订单总和在用户余额预算之内吗?!
  • 但是如果$request->user()->balance = 0 呢?那么 max: 会是 0 吗? :))
猜你喜欢
  • 2011-06-15
  • 1970-01-01
  • 2014-12-29
  • 2017-03-23
  • 1970-01-01
  • 2018-04-23
  • 2016-09-23
  • 2017-11-02
  • 1970-01-01
相关资源
最近更新 更多