在选择中使用一个字段时,模型不返回值

时间:2019-03-12 14:26:43

标签: php mysql sql laravel

我对if语句有疑问。我想检查一下什么大于另一个价格值。一个值保存在我的数据库表中,另一个值与输入值一起获得。但是我写了一些if语句不起作用。

这是我的表存储价格列结构。

rest_payment -> double(11, 2)

我通过请求获得了另一个价值

$payment = $request->input('payment');

我的控制器功能

$checkRestPayment = DB::table('sales')
                    ->select('rest_payment')
                    ->where('bill_no', $request->input('bill_no'))
                    ->first();

$payment = $request->input('payment');   

if($checkRestPayment < $payment)
{
  return back()->with('error', 'Your payment value exceed rest payment value in this bill no!');
}

有人可以帮助我解决此错误吗?

2 个答案:

答案 0 :(得分:3)

$checkRestPayment是一个完整的模型–您需要标注rest_payment

if ($checkRestPayment->rest_payment < $payment)

答案 1 :(得分:2)

您的$checkRestPaymentModel对象。为了比较该字段,您需要引用rest_payment属性:

if($checkRestPayment->rest_payment < $payment)

您还可以做的是让数据库为您做比较:

// this is now a boolean
$hasRestPayment = DB::table('sales')
                  ->where('bill_no', $request->input('bill_no'))
                  ->where('rest_payment', '<', $request->input('payment'))
                  ->exists();

if($hasRestPayment)
{
  return back()->with('error', 'Your payment value exceed rest payment value in this bill no!');
}