php - 将数组值从控制器传递到模型以进行插入/更新操作
问题描述
我正在使用 API 收到支付网关的支付交易确认,如下所示。但我无法使用响应并插入数据库。
我的控制器:
$transaction_id= filter_input(INPUT_POST, 'pay_id');
$api = new Api('ID', 'key');
//getting object of transation
$payment = $api->payment->fetch($transaction_id);
//passing payment details to database
$this->Payment_model->set_payment($transaction_id,true);
$payment
数组的当前结构:
pay\Api\Payment Object ( [attributes:protected] => Array ( [id] => pay_BVzDNK3vsp4Owl [entity] => payment [amount] => 35400 [currency] => INR [status] => authorized [order_id] => ) )
我的pay_model.php
:
public function set_payment($payment,$first)
{
$data = array(
'id' => $id,
'entity' => $entity,
'amount' => $amount,
'currency' => $currency,
'status' => $status,
'order_id' => $order_id,
'updated_at' => date('Y-m-d H:i:s')
);
if ($first == TRUE) {
//print_r($data);
// echo "breakpoint--i am in set user model id 0";
return $this->db->insert('payments', $data);
} else {
//echo "breakpoint--i am in set user model id not 0";
$this->db->where('id', $id);
return $this->db->update('payments', $data);
}
}
问题:我的 $data 数组总是接收 NULL 值。如何使用我在此处接收的数据并将其传递给模型以进行插入/更新操作。
解决方案
数组的值$data
未在函数范围内定义(它为您提供 NULL 值)。
您有 2 个错误。首先是发送正确的数据来set_payment
运行:
$payment = $api->payment->fetch($transaction_id);
$this->Payment_model->set_payment($transaction_id,true);
我认为第二行应该是:
$this->Payment_model->set_payment($payment,true);
作为发送$payment
而不是发送$transaction_id
。
第二个错误是在set_payment
函数中使用数据时。创建时$data
,您应该将其用作:
'id' => $payment['id'], //and no just $id
'entity' => $payment['entity'],//and no just $entity as those var not exist in this scope
// and so on...
推荐阅读
- mongodb - Spring Boot Kogito Mongodb 集成
- c# - Is it possible to mock System.Windows.Window using moq
- php - 得到 oracle 00979 的错误,而不是用 oracle 在流明中的表达式
- javascript - 在 Google 表格单元格 (GAS) 中打印未指定数量的数组内容
- r - 我收到此错误:找不到函数“%>%”
- django - 尝试运行 Django 并得到 AttributeError: module 'secrets' has no attribute 'choice'
- finance - 银行软件中的日期账户余额是如何计算的?
- html - Java FX:部分更改 ListView 中的颜色?
- python - 在 Python 中从文本文件创建字典
- php - Codeigniter 3 MySQLi 安全数据库连接