【问题标题】:Cannot Update On Laravel 5.5无法在 Laravel 5.5 上更新
【发布时间】:2018-11-23 17:09:29
【问题描述】:

我有问题。

这是我的控制器

public function finish(Request $request)
{
    $result = $request->input('data');
    //$data = json_decode($result, true);
    return $this->InvoiceBayar($result);
}

public function InvoiceBayar($result)
{
    $data = json_decode($result, true);
    $transaction = $data['transaction_status'];
    $type = $data['payment_type'];
    $order_id = $data['order_id'];
    $fraud = $data['fraud_status'];
      Fee::where('invoice',$order_id)
      ->update([
          'status' => 'Paid',
      ]);
      echo "Transaction order_id: " . $order_id ." successfully transfered using " . $type;
}

这是我的路线

Route::POST('/notification', 'SnapController@finish');

当支付网关向我发送参数时,我无法更新数据库。 但是当我使用邮递员时。我成功更新数据库

【问题讨论】:

  • 你有什么错误吗?
  • 嗨@SaurabhDhariwal,我想,我没有收到任何错误。你能解决这个问题吗?
  • 你得到什么回应?

标签: laravel postman


【解决方案1】:

您需要使用$request->all(),因为它将包含所有支付网关数据。

public function finish(Request $request)
{
   $result = $request->all();
   return $this->InvoiceBayar($result);
}

【讨论】:

  • 这是真的,查看 OP 发布的响应,没有从支付网关传递的“数据”,因此没有提供要更新的数据。
【解决方案2】:

您也可以这样做

$update = Fee::where('invoice',$order_id)->first();
$update->status = 'Paid';
$update->save();

【讨论】:

  • 您的数据库中有“状态”列吗?
  • 嗨哈伦,是的,我愿意,填写未付款
【解决方案3】:

你应该试试这个:

public function InvoiceBayar($result)
{
    $data = json_decode($result, true);
    $transaction = $data->transaction_status;
    $type = $data->payment_type;
    $order_id = $data->order_id;
    $fraud = $data->fraud_status;
      Fee::where('invoice',$order_id)
      ->update([
          'status' => 'Paid',
      ]);
      echo "Transaction order_id: " . $order_id ." successfully transfered using " . $type;
}

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2018-04-24
    • 1970-01-01
    • 2018-04-16
    相关资源
    最近更新 更多