Php 在laravel中的函数之间传递变量

Php 在laravel中的函数之间传递变量,php,arrays,laravel,laravel-5,Php,Arrays,Laravel,Laravel 5,我想我只是在查看它,但我无法将我的变量添加到我的视图中 在同一个控制器中,我调用一个函数,从那里我返回一个包含变量的数组(也是数组的)。从最初启动的函数中,我将变量发送到视图 但是,在视图中,我得到一个错误,表示变量未定义 我需要的信息在数组$items和数组$trans中。这些需要进入函数确认,并最终进入确认视图 这两个函数(我试图删除大多数与问题无关的代码): 这是视图中我需要访问变量的部分: <?php var_dump($order_id); var_dump($trans); v

我想我只是在查看它,但我无法将我的变量添加到我的视图中

在同一个控制器中,我调用一个函数,从那里我返回一个包含变量的数组(也是数组的)。从最初启动的函数中,我将变量发送到视图

但是,在视图中,我得到一个错误,表示变量未定义

我需要的信息在数组$items和数组$trans中。这些需要进入函数确认,并最终进入确认视图

这两个函数(我试图删除大多数与问题无关的代码):

这是视图中我需要访问变量的部分:

<?php
var_dump($order_id);
var_dump($trans);
var_dump($items);


// Function to return the JavaScript representation of a TransactionData object.
function getTransactionJs(&$trans) {
  return <<<HTML
ga('ecommerce:addTransaction', {
  'id': '{$trans['id']}',
  'affiliation': '{$trans['affiliation']}',
  'revenue': '{$trans['revenue']}'
});
HTML;
}

// Function to return the JavaScript representation of an ItemData object.
function getItemJs(&$transId, &$item) {
      return <<<HTML
    ga('ecommerce:addItem', {
      'id': '$transId',
      'name': '{$item['name']}',
      'sku' : '{$item['sku']}',
      'price': '{$item['price']}',
      'quantity': '{$item['quantity']}'
    });
    HTML;
    }

?>

<script>

<?php
echo getTransactionJs($trans);

foreach ($items as &$item) {
  echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

ga(“电子商务:发送”);

您必须将变量发送到视图。您可以将代码更改为以下内容:

//Return the view via confirmation function.
public function sendpicqer($order_id){
   ...
   return $this->confirmation($order_id, $items, $trans);
}


public function confirmation($order_id, $items, $trans){
    $order = Orders::findOrFail($order_id);
    if(isset($order->transaction_id)){
        $data = [];
        $data['order_id'] = $order->order_reference;
        $data['trans'] = $trans;
        $data['items'] = $items;

        //Send the variables to the view
        return view('confirmation', $data);
    }else{
        return redirect()->route('cancel');
    }
}

希望这有帮助……

当您
var\u dump
发送到视图而不是显示视图的数组时,您会得到什么?数据显示了吗?@TurgutSarıçam在视图中,我得到一条由Laravel生成的错误消息,上面说:未定义变量:trans(视图:确认视图的路径),因此我永远不会得到var_转储结果。但是,我首先对$order\u id执行var\u转储,并且不会返回错误。这是导致错误的第二个var_转储(包含trans)。我可以通过这种方式访问$trans吗?因为上面只有几行,所以我将它们添加到发送到视图的数据数组中。但错误一定在于我如何获取这些变量。你是如何获取这些变量的?你能用视图代码编辑你的文章吗?我已经在使用变量的地方添加了视图代码。我编辑了代码。试试这个新的。现在我完全明白你想做什么了。检查它是否有效。。。
//Return the view via confirmation function.
public function sendpicqer($order_id){
   ...
   return $this->confirmation($order_id, $items, $trans);
}


public function confirmation($order_id, $items, $trans){
    $order = Orders::findOrFail($order_id);
    if(isset($order->transaction_id)){
        $data = [];
        $data['order_id'] = $order->order_reference;
        $data['trans'] = $trans;
        $data['items'] = $items;

        //Send the variables to the view
        return view('confirmation', $data);
    }else{
        return redirect()->route('cancel');
    }
}