[英]how to pass a value from repository to the controller in laravel
SmartpaySPaymentRepository.php
我是 Laravel 的新手。 我想将 SmartpaySPaymentRepository.php sendPaymentToSmartpaySForPaymentToken 函数中的这个值 ($url->nodeValue) 传递给 SmartPaySController.php getQuotePayment($quoteId) 函数有人可以帮我做到这一点吗?
public function sendPaymentToSmartpaySForPaymentToken($xml, $authToken, $transactionId, $doPrepareUrl)
{
$fields = array(
'authToken' => $authToken,
'&requestXML' => $xml,
);
$fields_string = $xml;
foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
rtrim($fields_string, '&');
//open connection
$ch = curl_init($doPrepareUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$response_from_smartpays = curl_exec($ch);
curl_close($ch);
$testString = $response_from_smartpays;//xml string
$dom = new \DOMDocument();
$dom->formatOutput = TRUE;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXml($testString);
$result = ($dom->getElementsByTagName('redirectURL'));
foreach ($result as $url){
return ($url->nodeValue);//want to passe this value to controller
}
}
SmartPaySController.php
public function getQuotePayment($quoteId)
{
$quote = $this->quoteRepo->getQuoteById($quoteId);
if($quote) {
$totalPrice = $quote->total_price;
if ($quote->amended_policy) {
$totalPrice = $quote->amend_price;
}
dd($url->nodeValue);//want to use $url->nodeValue here
$currency = CURRENCY_TYPE;
return $this->processSmartpaySPayment(PAYMENT_TYPE_QUOTE, $totalPrice, $currency, $quote->customer_id, $quoteId);
}else {
abort(404);
}
}
您可以将它们作为存储库中的数组返回
$resultReturn = []
foreach ($result as $url){
$resultReturn[] = ($url->nodeValue);//want to passe this value to controller
}
return $resultReturn; // pass the array contiling all rsults in the loop
在控制器中
$currency = CURRENCY_TYPE;
$results = $this->processSmartpaySPayment(PAYMENT_TYPE_QUOTE, $totalPrice, $currency, $quote->customer_id, $quoteId);
dd($results); //array of $url->nodeValue here
return $results;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.