【发布时间】:2018-09-10 09:00:35
【问题描述】:
我遇到了一个奇怪的问题,我似乎无法访问 Laravel 中的对象,但是当将变量传递到我的 Vue 前端时,我可以访问其中的所有内容。
这是代码,这是它产生的...
public function getPaymentStatus(Request $request) {
$transaction = $this->midTest->getLatestTransaction();
$url = "https://" . $transaction->url . $request->resourcePath;
$url .= "?authentication.userId=" . $transaction->user_id;
$url .= "&authentication.password=" . $transaction->password;
$url .= "&authentication.entityId=" . $transaction->entity_id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // This should be set to true in production
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($ch);
if(curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
return $responseData;
}
如果我这样做,我会得到一个错误。
return $responseData->data;
试图获取非对象的属性“数据”{“异常”:“[对象] (ErrorException(代码:0):试图获取非对象的属性“数据” 在 /Users/dallysingh/Projects/Laravel/app/Http/Controllers/MidTestController.php:196)
在我的 Vue 前端中,我可以控制台记录以下内容并清楚地查看所有数据。
console.log(response.data);
如何访问 Laravel 中的对象,因为我正在尝试将数据存储在表中,然后再将其发送到我的 Vue 前端。这就是我想要的……
public function getPaymentStatus(Request $request) {
$transaction = $this->midTest->getLatestTransaction();
$url = "https://" . $transaction->url . $request->resourcePath;
$url .= "?authentication.userId=" . $transaction->user_id;
$url .= "&authentication.password=" . $transaction->password;
$url .= "&authentication.entityId=" . $transaction->entity_id;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // This should be set to true in production
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($ch);
if(curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
$this->midTest->updateLatestTransaction($responseData, $transaction);
return $responseData;
}
public function updateLatestTransaction($response, $transaction) {
$transaction = DB::table('transactions')
->where('id', $transaction->id)
->update(
['transaction_id', $response->data['id']
]);
}
【问题讨论】:
-
你能转储 $responseData 吗? laravel 在里面找不到数据属性
-
使用 Guzzle 代替
curl_setopts 的怪物。祝你好运! -
@HasanTıngır - 当我将 $responseData 传递给 Vue 前端时,我可以访问 data 属性,但我似乎无法通过 Laravel 访问它。我正在尝试将 responseData 传递给模型以将数据插入表中,但它无法正常工作,因为它找不到它。
-
代码已更新为包含模型。