我想检索会话数组并放入其他模型但是抛出`
调用数组
上的成员函数pluck()
我使用的控制器:
--upgrade
如何访问会话数据并放入其他模型?
这是我在dd()会话时得到的回复:
$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');
答案 0 :(得分:1)
尝试这样,
$orders = $request->session()->get('order');
print_r($orders);
如果您获得了学校ID数组的订单,那么您可以通过$ orders [' school_id'];如果您获得std对象,那么您可以通过$orders->school_id;
检索它
按print_r(orders)
的输出使用
然后你可以通过
如果是std object ::
$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 ::
$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();
答案 1 :(得分:0)
我会使用array_get
帮助器。
https://laravel.com/docs/5.5/helpers#method-array-get
array_get($orders, 'school_id');
此外,如果会话中不存在该值,您可以使用回退作为第三个参数。
答案 2 :(得分:0)
Session保存Array中的所有数据,而不是Collection。函数pluck()只能用于集合。
尝试按照Marc或<table class="table" id="tabelddl">
<thead>
<tr>
<th class="col-lg-1" style="display:none;">opleiding_id</th>
<th class="col-lg-2" style="display:none;">relatie_id</th>
<th class="col-lg-2" style="display:none;">inschrijving_id</th>
<th class="col-lg-1" style="display:none;">naam_opleiding</th>
<th class="col-lg-1">achternaam</th>
<th class="col-lg-1">tussenvoegsel</th>
<th class="col-lg-1">voornaam</th>
<th class="col-lg-1" style="display:none;">vraag 1</th>
<th class="col-lg-1" style="display:none;">vraag 2</th>
<th class="col-lg-1" style="display:none;">vraag 3</th>
<th class="col-lg-1" style="display:none;">vraag 4</th>
<th class="col-lg-1" style="display:none;">vraag 5</th>
</tr>
</thead>
</table>
array_get($orders, 'school_id');
进行操作
答案 3 :(得分:0)
这取决于你是如何将它存储到会话中的,所以如果你使用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;
]
答案 4 :(得分:0)
调用数组
上的成员函数pluck()
您的$orders
变量是一个数组,因此您无法使用pluck。您可以$order['key']
访问其值。或者像其他人建议的那样,使用辅助函数array_get