2016-11-13 13 views
-1

내 laravel 응용 프로그램에서 처리 할 외부 회사의 배열을 얻습니다.Laravel에 'bns : OrderId'라는 이름이있는 블레이드에서 배열을 가져 옵니까?

들어오는 json에는 'bns : OrderId'와 같은 이름이 있습니까?

블레이드 내가 {{$ 순서 -> BNS : ORDERID}}에 액세스하려고 할 때 오류를 줄

내가이 문제를 어떻게 처리 할 수 ​​??

컨트롤러 : 배열

public function getBolOrders() 
{ 
    // or live API: https://plazaapi.bol.com 
    $url = 'https://test-plazaapi.bol.com'; 
    $uri = '/services/rest/orders/v1/open'; 

    // your public key 
    $public_key = '<public key>'; 

    //your private key 
    $private_key = '<private key>'; 

    $port = 443; 
    $contenttype = 'application/xml'; 
    $date = gmdate('D, d M Y H:i:s T'); 
    $httpmethod = 'GET'; 

    $signature_string = $httpmethod . "\n\n"; 
    $signature_string .= $contenttype . "\n"; 
    $signature_string .= $date."\n"; 
    $signature_string .= "x-bol-date:" . $date . "\n"; 
    $signature_string .= $uri; 
    $signature = $public_key.':'.base64_encode(hash_hmac('SHA256', $signature_string, $private_key, true)); 

    // Setup CURL (One can also opt to use sockets or http libraries, but CURL is a versatile, widespread solution) 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: ".$contenttype, "X-BOL-Date:".$date, "X-BOL-Authorization: ".$signature)); 
    curl_setopt($ch, CURLOPT_URL, $url.$uri); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_PORT, $port); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 

    $result = curl_exec($ch); 
    $orders = fopen("orders.xml", "w"); 
    fwrite($orders, $result); 
    fclose($orders); 
    if(curl_errno($ch)) { 
     print_r(curl_errno($ch), true); 
    } 
// Clean up after ourselves 
    curl_close($ch); 
// Convert XML TO JSON 
    $xmlNode = simplexml_load_file('orders.xml'); 
    $arrayData = xmlToArray($xmlNode); 
    $OpenOrder = $arrayData['OpenOrders']['bns:OpenOrder']; 
// dd($OpenOrder); 
// Goto view 
    return view('bol.open-orders', compact('OpenOrder')); 
} 

DD :

array:2 [▼ 
    0 => array:6 [▼ 
    "bns:OrderId" => "123" 
    "bns:DateTimeCustomer" => "2016-11-07T15:20:08.904" 
    "bns:DateTimeDropShipper" => "2016-11-07T15:20:08.904" 
    "bns:Paid" => "true" 
    "bns:Buyer" => array:2 [▶] 
    "bns:OpenOrderItems" => array:1 [▶] 
] 
1 => array:6 [▼ 
    "bns:OrderId" => "321" 
    "bns:DateTimeCustomer" => "2016-11-07T15:20:08.904" 
    "bns:DateTimeDropShipper" => "2016-11-07T15:20:08.904" 
    "bns:Paid" => "false" 
    "bns:Buyer" => array:2 [▶] 
    "bns:OpenOrderItems" => array:1 [▶] 
    ] 
] 

예 블레이드 서식 :

@foreach ($OpenOrder as $order) 
    {{ $order->bns:OrderId }} 
@endforeach 
+0

이 컨트롤러 및 전체 쿼리를 제공합니다. 나에게'dd ($ OpenOrder);'데이터를 보여 주라. –

+0

질문 텍스트를 변경 함 –

+0

예 : 공공 장소에서 공개 키와 개인 키를 입력하지 마십시오. :) –

답변

0

이 쿼리 arrays 값 아니라 Object 수집 반환. 이 {{ $order->bns:OrderId }} 대신 {{ $order["bns:OrderId"] }}을 사용하십시오.

이 시도 :

@foreach ($OpenOrder as $order) 
    {{ $order["bns:OrderId"] }} 
@endforeach 
+0

이것은 트릭을 수행했습니다! 감사합니다 –

+0

@RudiWerner 도와 드리겠습니다 :) –