Php Laravel-会话中的Foreach和get属性

Php Laravel-会话中的Foreach和get属性,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,我目前正在制作一个系统,在我将值放入数据库之前,我正在处理会话,以防止混乱。现在我有一个小问题。如果用户访问某个控制器,则会话中存储的所有值都需要存储在数据库中。我的会话如下所示: [ 'pluginid1' => [...], 'pluginid2' => [...], 'pluginid3' => [...], 'pluginid4' => [...], 'theme' => [...] ]; 如果GIF太小,以下是i

我目前正在制作一个系统,在我将值放入数据库之前,我正在处理会话,以防止混乱。现在我有一个小问题。如果用户访问某个控制器,则会话中存储的所有值都需要存储在数据库中。我的会话如下所示:

[
    'pluginid1' => [...],
    'pluginid2' => [...],
    'pluginid3' => [...],
    'pluginid4' => [...],
    'theme' => [...]
];

如果GIF太小,以下是imgur链接:

现在我需要有一个foreach循环,循环所有主题和产品会话,并获取它们的价格和ID。但是因为它们存储在会话中,我不知道如何检索它们

我将它们存储在会话中,如下所示:

[
    'pluginid1' => [...],
    'pluginid2' => [...],
    'pluginid3' => [...],
    'pluginid4' => [...],
    'theme' => [...]
];
主题

$theme = Product::find($selectedTheme);

    foreach($this->predefinedArray as $value) {
        $request->session()->put('chosen_theme.' . $value, $theme->$value);
    }
foreach($request->input('plugin') as $key => $value) {
        if ($value === 'selected') {
            $selectedPlugin = $key;

            $plugin = Product::find($selectedPlugin);

            $price += $plugin->price;

            echo "ID: " . $plugin->id . "<br>";
            $selectedPlugins[$plugin->id] = $plugin->toArray();

            $request->session()->put('chosen_plugins.' . 'PluginID' . $plugin->id, $plugin->toArray());
            $request->session()->put('chosen_plugins.' . 'PluginID' . $plugin->id .'.composer_package', $plugin->productable->composer_package);

        }
    }
插件

$theme = Product::find($selectedTheme);

    foreach($this->predefinedArray as $value) {
        $request->session()->put('chosen_theme.' . $value, $theme->$value);
    }
foreach($request->input('plugin') as $key => $value) {
        if ($value === 'selected') {
            $selectedPlugin = $key;

            $plugin = Product::find($selectedPlugin);

            $price += $plugin->price;

            echo "ID: " . $plugin->id . "<br>";
            $selectedPlugins[$plugin->id] = $plugin->toArray();

            $request->session()->put('chosen_plugins.' . 'PluginID' . $plugin->id, $plugin->toArray());
            $request->session()->put('chosen_plugins.' . 'PluginID' . $plugin->id .'.composer_package', $plugin->productable->composer_package);

        }
    }

提前谢谢

我相信在使用
foreach
之前,您需要将
所选主题
所选插件
会话数据合并在一起

考虑创建一个新变量
$products=Session::get('selected_plugins')
。这是一个多维数组

然后使用
$products['theme']=Session::get('selected_-theme')
所选_-theme
数组添加到
$products
。这是在假设只选择了一个
主题的情况下完成的,它是一个一维数组

结构现在应该如下所示:

[
    'pluginid1' => [...],
    'pluginid2' => [...],
    'pluginid3' => [...],
    'pluginid4' => [...],
    'theme' => [...]
];
然后,您应该能够运行循环:

foreach ($products as $product) {
    $model = new Model;
    $model->price = $product['price'];
    ...
}

祝您一切顺利。

我相信在使用
foreach
之前,您需要将
selected\u主题
selected\u插件
会话数据合并在一起

考虑创建一个新变量
$products=Session::get('selected_plugins')
。这是一个多维数组

然后使用
$products['theme']=Session::get('selected_-theme')
所选_-theme
数组添加到
$products
。这是在假设只选择了一个
主题的情况下完成的,它是一个一维数组

结构现在应该如下所示:

[
    'pluginid1' => [...],
    'pluginid2' => [...],
    'pluginid3' => [...],
    'pluginid4' => [...],
    'theme' => [...]
];
然后,您应该能够运行循环:

foreach ($products as $product) {
    $model = new Model;
    $model->price = $product['price'];
    ...
}
祝你一切顺利