2016-09-16 82 views
2

我想在页面上显示来自api调用的一些数据。数据是用于比特币支付的。所以我有订单,如果客户用比特币支付我想看到确认,金额等。获取JSON数组并显示来自该数组的结果

Here is one example url哪些返回json数据。

这里就是我想在我的控制器

public function ordersView($orderId) { 
    /** @var Order $order */ 
    $order = Order::where('order_id', $orderId)->first(); 
    if (!$order) { 
     App::abort(404); 
    } 

    $url="http://btc.blockr.io/api/v1/tx/info/9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    $result=curl_exec($ch); 
    curl_close($ch); 

    $total = file_get_contents($url); 

    return View::make('site.admin.orders_view', [ 
     'order' => $order, 
     'total' => $total 
    ]); 
} 

,然后在视图

@foreach($order->getOrderData($order->data) as $itemId => $item) 

    // some product info like name, description etc.. 

    @foreach($total as $i => $totals) 
      {{ $totals['confirmations'] }} 
      {{ $totals['time_utc'] }} 
    @endforeach 
@endforeach 

当前的错误,我得到的是

'Invalid argument supplied for foreach() 

在内部的foreach

@foreach($total as $i => $totals) 
      {{ $totals['confirmations'] }} 
      {{ $totals['time_utc'] }} 
    @endforeach 

有人可以帮我解释这些数据吗?

回答

1

您需要在阵列甲的响应进行转换,因为你的反应是JSON 所以尝试你转换JSON数组使用此功能json_decode() ...

$url="http://btc.blockr.io/api/v1/tx/info/9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    $result=curl_exec($ch); 
    curl_close($ch); 

    $total =json_decode(file_get_contents($url),true); 

和你的反应是......

Array 
(
    [status] => success 
    [data] => Array 
     (
      [tx] => 9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52 
      [block] => 429605 
      [confirmations] => 468 
      [time_utc] => 2016-09-13T12:59:24Z 
      [is_coinbased] => 0 
      [trade] => Array 
       (
        [vins] => Array 
         (
          [0] => Array 
           (
            [address] => 19c9JnCoyRqUkUjJkbdK9qDApk2a5Vy558 
            [is_nonstandard] => 
            [amount] => -0.103855 
            [n] => 0 
            [type] => 0 
            [vout_tx] => ebe35a1aee39c17668a26a6d91d49e83651ee1c5fe28f23130202e617054e545 
           ) 

         ) 

        [vouts] => Array 
         (
          [0] => Array 
           (
            [address] => 1DsRkxNy8LAAbi6kEh6ZoeZGjAVBuia4uw 
            [is_nonstandard] => 
            [amount] => 0.00295729 
            [n] => 0 
            [type] => 1 
            [is_spent] => 1 
           ) 

          [1] => Array 
           (
            [address] => 1NusFWAG3mgkLszWo5oH13FLbwVaJZ6aRL 
            [is_nonstandard] => 
            [amount] => 0.10069771 
            [n] => 1 
            [type] => 1 
            [is_spent] => 0 
           ) 

         ) 

       ) 

      [vins] => Array 
       (
        [0] => Array 
         (
          [address] => 19c9JnCoyRqUkUjJkbdK9qDApk2a5Vy558 
          [is_nonstandard] => 
          [amount] => -0.10385500 
          [n] => 0 
          [type] => 0 
          [vout_tx] => ebe35a1aee39c17668a26a6d91d49e83651ee1c5fe28f23130202e617054e545 
         ) 

       ) 

      [vouts] => Array 
       (
        [0] => Array 
         (
          [address] => 1DsRkxNy8LAAbi6kEh6ZoeZGjAVBuia4uw 
          [is_nonstandard] => 
          [amount] => 0.00295729 
          [n] => 0 
          [type] => 1 
          [is_spent] => 1 
          [extras] => Array 
           (
            [asm] => OP_DUP OP_HASH160 8d2af96bbb1c0464c8129db247458769b6767a10 OP_EQUALVERIFY OP_CHECKSIG 
            [script] => 76a9148d2af96bbb1c0464c8129db247458769b6767a1088ac 
            [reqSigs] => 1 
            [type] => pubkeyhash 
           ) 

         ) 

        [1] => Array 
         (
          [address] => 1NusFWAG3mgkLszWo5oH13FLbwVaJZ6aRL 
          [is_nonstandard] => 
          [amount] => 0.10069771 
          [n] => 1 
          [type] => 1 
          [is_spent] => 0 
          [extras] => Array 
           (
            [asm] => OP_DUP OP_HASH160 f05a37d55fa0512b32320cf362bb96f94d886259 OP_EQUALVERIFY OP_CHECKSIG 
            [script] => 76a914f05a37d55fa0512b32320cf362bb96f94d88625988ac 
            [reqSigs] => 1 
            [type] => pubkeyhash 
           ) 

         ) 

       ) 

      [fee] => 0.00020000 
      [days_destroyed] => 0.05 
      [is_unconfirmed] => 
      [extras] => 
     ) 

    [code] => 200 
    [message] => 
) 
+0

感谢您的答案,但我仍然得到这个错误''为foreach提供的foreach()'无效参数.. – Garg

+0

我已经删除了'foreach'循环并试图直接访问'$ total ['confirmations' ]'但是得到了'NULL' – Garg

+0

我已经在我的本地尝试了你的代码,它的工作正常。 –