Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Larvel如何在会话中存储模型和关系ID,以便再次获取关系_Php_Session_Laravel - Fatal编程技术网

Php Larvel如何在会话中存储模型和关系ID,以便再次获取关系

Php Larvel如何在会话中存储模型和关系ID,以便再次获取关系,php,session,laravel,Php,Session,Laravel,我认为我这样做是错误的,因为它看起来太难了……基本上,我是将我的模型和关系id作为数组数组写入会话变量中,我希望在另一端检索会话数据时重新加载模型。我是否可以以不同的方式存储会话数据以使其更简单 这就是我存储阵列的方式 $bookingsPaymentPending[$attendee\u id][]=$program\u id 对于1名与会者(id=416)和2个相关项目(id=2,4),这给了我一些类似于 Array([416]=>Array([0]=>2[1]=>4)) 我正试图通过一个有

我认为我这样做是错误的,因为它看起来太难了……基本上,我是将我的模型和关系id作为数组数组写入会话变量中,我希望在另一端检索会话数据时重新加载模型。我是否可以以不同的方式存储会话数据以使其更简单

这就是我存储阵列的方式

$bookingsPaymentPending[$attendee\u id][]=$program\u id

对于1名与会者(
id=416
)和2个相关项目(
id=2,4
),这给了我一些类似于
Array([416]=>Array([0]=>2[1]=>4))

我正试图通过一个有说服力的查询,将其转化为
$attenders with('programs')
和相关程序的集合

差不多

foreach ($bookingPaymentPending as $attendee_id => $program_ids)
    $attendee[]= Attendee::find($attendee)->with('program'=>function($q) use ($program_ids){
    $q->whereIn('id', $program_ids);
}
`


但是它不起作用,而且它只是一个
$attenders
数组,我可能想要这个集合。

您应该能够通过序列化来实现这一点

在存储对象之前对其使用PHP serialize(),并取消序列化()以恢复它们

另请参见此处的文档:


但是,我真的不建议以这种方式存储数据。将有说服力的对象保存到数据库中,如果您想在会话中使用它们,只需引用id,并在需要时从数据库中获取它。

我成功地做到了这一点,您需要将
$attenders
集合按会话变量的原样存储以及关系,请查看laravels