如何将会话值存储到数据库中?

时间:2017-12-04 11:15:38

标签: php laravel session laravel-5

我想检索会话数组并放入其他模型但是抛出`

  

调用数组

上的成员函数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');

5 个答案:

答案 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