私はちょうどそれを見ていると思いますが、自分の変数を私の視点に得ることはできません。laravelの関数間で変数を渡す
私は関数を呼び出し、そこから変数(配列の配列)を含む配列を返します。私が最初に始めた関数の中から、変数をビューに送ります。
しかし、ビューでは、変数が定義されていないというエラーが表示されます。
必要な情報は配列$ itemsと配列$ transです。これらは機能確認に入る必要があり、確認画面で終了する必要があります。
二つの機能(私は質問とは何の関係もありませんほとんどのコードを削除しようとした):
public function confirmation($order_id){
$order = Orders::findOrFail($order_id);
if(isset($order->transaction_id)){
$data = [];
$data['order_id'] = $order->order_reference;
$data['trans'] = $order->dat['tr'];
$data['items'] = $order->dat['it'];
return view('confirmation', $data);
}else{
//Nothing relevant
}
}
public function sendpicqer($order_id){
$order = Orders::with(['orderDetails', 'orderAddress', 'customer'])->where('order_id', $order_id)->first();
$order_details = OrderDetails::where('order_id', $order_id)->get();
$error = $order_id;
$result = $this->picqer->addCustomer($customer);
if(!isset($result['data'])){
$error = $result;
if(is_array($result)){
$error = json_encode($result);
}
return redirect()->route('cancel');
}
$orderData = [
'idcustomer' => $result['data']['idcustomer']
];
$orderData['products'] = [];
$items = [];
foreach($order_details as $od){
$pid = $od->product_id;
switch ($pid) {
case 1:
$pid = 2399983;
break;
case 2:
$pid = 2399990;
break;
}
$orderData['products'][] = [
'idproduct' => $pid,
'amount' => $od->quantity
];
$items[] = [
'sku' => $pid,
'name' => $od->product_id->product_name,
'price' => $od->product_id->product_price,
'quantity' => $od->quantity
];
}
$result = $this->picqer->addOrder($orderData);
if(isset($result['data'])){
//Succeeded!
$idorder = $result['data']['idorder'];
$orderid = $result['data']['orderid'];
$trans = array('id' => $orderid, 'affiliation' => 'Matt Sleeps', 'revenue' => $order->total_price);
$dat = [];
$dat['tr'] = $trans;
$dat['it'] = $items;
return $dat;
$result2 = $this->picqer->sendRequest('/orders/'.$idorder.'/process', null, 'POST');
if(!isset($result2['data'])){
$error = $result2;
if(is_array($result2)){
$error = json_encode($result2);
}
return redirect()->route('cancel');
}
}else{
$error = $result;
if(is_array($result)){
$error = json_encode($result);
}
return redirect()->route('cancel');
}
//Order is successfully confirmed and send to Picqer!
$error = '(Both to the customer and with Picqer)';
}
これは私が変数にアクセスする必要があるビューの一部である:
<?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>
あなたは何を得るのですか...このことができます
希望:あなたはこのような何かにコードを変更することができますか?データは表示されていますか? –
@TurgutSarıçamビューで私はLaravelが生成するエラーメッセージが表示されます:未定義の変数:trans(ビュー:確認ビューへのパス) 私はvar_dumpの結果を得ることはありません。しかし、私はまず$ order_idでvar_dumpを実行し、エラーは返されません。これはエラーを引き起こす2番目のvar_dump(transを含む)です。 – Maarten