[英]How to put session value store into database?
我想檢索會話數組並放入其他模型,但是拋出`
在數組上調用成員函數pluck()
我使用的控制器:
$orders = $request->session()->get('order');
$order = new Order();
$order->school_id = $orders->pluck('school_id');
$order->order_date = $orders->pluck('order_date');
$order->time_slot = $orders->pluck('time_slot');
如何訪問會話數據並放入其他模型?
這是我在dd()會話時得到的響應:
array:1 [▼
0 => array:3 [▼
"school_id" => "4"
"order_date" => "11/25/2017"
"time_slot" => "10am - 8pm"
]
]
這樣嘗試
$orders = $request->session()->get('order');
print_r($orders);
如果您獲得學校ID數組的訂單,則可以通過$ orders ['school_id'];獲得; 如果您獲得了std對象,則可以通過$orders->school_id;
檢索它$orders->school_id;
按照print_r(orders)
輸出使用,然后可以通過
如果std對象::
$order = new Order();
$order->school_id = $orders[0]->school_id;
$order->order_date = $orders[0]->order_date;
$order->time_slot = $orders[0]->time_slot;
$order->save();
如果數組::
$order = new Order();
$order->school_id = $orders[0]['school_id'];
$order->order_date = $orders[0]['order_date'];
$order->time_slot = $orders[0]['time_slot'];
$order->save();
我會使用array_get
助手。
https://laravel.com/docs/5.5/helpers#method-array-get
array_get($orders, 'school_id');
此外,如果會話中不存在該值,則可以將回退用作第三個參數。
會話將所有數據保存在數組中,而不保存在集合中。 函數pluck()僅可用於集合。
嘗試做array_get($orders, 'school_id');
正如Marc已經提到的那樣,或者只是$request->session()->get('order')['school_id'];
這取決於您如何將其存儲到會話中,因此,如果使用了push,則它將存儲為數組。
無論如何,請將您的代碼更改為以下內容:
$orders = $request->session()-> pull('order',$defaultOrdersArrayCanBeHere);
$order = new Order();
$order->school_id = $orders['school_id'];
$order->order_date = $orders['order_date'];
$order->time_slot = $orders['time_slot'];
更新:
您是否按以下方式將其推送到會話: session()->push('order', $order);
哪里:
$order = [
'school_id'=> $schoolId;
'order_date'=> $orderDate;
'time_slot'=> $timeSlot;
]
在數組上調用成員函數pluck()
您的$orders
變量是一個數組,因此不能使用pluck。 您可以執行$order['key']
來訪問其值。 或如其他建議那樣,使用輔助函數array_get
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.