【问题标题】:Laravel - Foreach in session and get attributesLaravel - 会话中的 Foreach 并获取属性
【发布时间】:2018-03-23 19:52:38
【问题描述】:

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

如果 GIF 太小,这里有一个 imgur 链接:https://imgur.com/a/uUxcI

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

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

主题

$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);

        }
    }

我知道如何从单个会话中获取值,例如 $themePrice = Session::get('chosen_theme')['price'];,但我不知道如何循环使用数组的会话

据我所知

foreach( It needs to loop through all the sessions ) {

       $orderItems = new Orderitems;

        $orderItems->order_id = $order->id;
        $orderItems->product_id = ;
        $orderItems->price = ;
}

提前致谢!

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.2


    【解决方案1】:

    我相信您需要在使用foreach 之前将chosen_themechosen_plugins 会话数据合并在一起。

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

    然后使用$products['theme'] = Session::get('chosen_theme')chosen_theme 数组添加到$products。这是在假设只有一个 chosen_theme 并且它是一个一维数组的情况下完成的。

    结构现在应该是这样的:

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

    然后,你应该可以运行你的循环了:

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

    一切顺利。

    【讨论】:

      猜你喜欢
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2014-04-26
      • 2023-03-09
      • 2018-07-14
      • 1970-01-01
      相关资源
      最近更新 更多