首页 > 解决方案 > 为什么 Laravel 跳过第二个 Foreach()

问题描述

我有一个简单的功能,但是当我调试时,我发现第二个 Foreach() 每次都被跳过:

这是我的代码:

foreach ($request->option as $option){
        $option = $product->option()->create([
            'name'=>$option['name'],
        ]);
        foreach($option['variant'] as $variant) {
            dd('variantSection');
            $option->variant()->create([
                'name'=>$variant
            ]);
        }
    }
    dd('great');

在这种情况下,我认为它应该打印“variantSection”,但我得到“很棒”。

标签: laravellaravel-8

解决方案


不确定,因为没有提供样本数据,但您正在覆盖该$option变量。尝试重命名它:

foreach ($request->option as $requestOption){
        $option = $product->option()->create([
            'name'=>$requestOption['name'],
        ]);
        foreach($requestOption['variant'] as $variant) {
            dd('variantSection');
            $option->variant()->create([
                'name'=>$variant
            ]);
        }
    }
    dd('great');

推荐阅读