在laravel-4中返回null的数组元素

时间:2014-08-01 03:31:12

标签: php arrays laravel laravel-4

我正在尝试使用给定ID从表中获取记录,并且我希望将特定列存储到另一个数组中,但每次null我的数组时我都会收到var_dump()

我的代码:

$getOrder = array();
foreach($ordersInWaypoint as $ordersInWaypoints)
{
    $getOrder[] = array(
          array($ordersInWaypoints),
          array(Order::where('id', '=', $ordersInWaypoints)->get()->lists('tracking_id')),
          array(Order::where('id', '=', $ordersInWaypoints)->get()->lists('shipper_ref_no'))
    );   
}

对于那些想知道$ ordersInWaypoint来自哪里的人,我从这里检索了它:

$ordersInWaypoint = array();
ordersInWaypoint = Transaction::where('waypoint_id', "=", $firstWaypoint)->get()->lists('order_id');

不要介意$firstWaypoint,因为这是由用户输入决定的。

每次我var_dump($getOrder);我都会得到以下结果集:

array (size=1)
0 => 


array (size=3)
  0 => 
    array (size=1)
      0 => int 637
  1 => 
    array (size=1)
      0 => 
        array (size=1)
          ...
  2 => 
    array (size=1)
      0 => 
        array (size=1)
          ...

第一个元素是正确的,但其余元素返回空集。

1 个答案:

答案 0 :(得分:0)

我认为你没有得到任何价值,因为那些Order::where(...)会返回Eloquent对象,而不仅仅是单个值。

你最好这样试试:

$getOrder = array();
foreach($ordersInWaypoint as $ordersInWaypoints)
{
    $order = Order::where('id', '=', $ordersInWaypoints)->get();
    $getOrder[] = array(
        array($ordersInWaypoints),
        array($order->tracking_id),
        array($order->shipper_ref_no)
    );   
}

请告诉我这是否可以解决问题;)

修改

如果您不使用多维数组,因为您只需要这三个值,那就更好了,因此最终的代码变为:

$getOrder = array();
foreach($ordersInWaypoint as $ordersInWaypoints)
{
    $order = Order::where('id', '=', $ordersInWaypoints)->get(); // create Eloquent object from query
    $getOrder[] = array(
        $ordersInWaypoints,
        $order->tracking_id,      // Calls column value as method from the Eloquent object
        $order->shipper_ref_no    // Same (you could also call it as an array,
    );                            // in that case you would type $order['shipper_ref_no']
}