为啥 Laravel 跳过第二个 Foreach()

Posted

技术标签:

【中文标题】为啥 Laravel 跳过第二个 Foreach()【英文标题】:Why Laravel skip the second Foreach()为什么 Laravel 跳过第二个 Foreach() 【发布时间】:2021-10-17 10:49:00 【问题描述】:

我有一个简单的功能,但是当我调试时,我发现第二个 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”,但我却得到“很棒”。

【问题讨论】:

您正在覆盖 $option 变量。尝试使用不同的名称 【参考方案1】:

不确定,因为没有提供示例数据,但您正在覆盖 $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');

【讨论】:

以上是关于为啥 Laravel 跳过第二个 Foreach()的主要内容,如果未能解决你的问题,请参考以下文章

OracleDataReader reader.Read() 从第二个记录行开始读取行,跳过第一行记录

为啥 takewhile() 会跳过第一行?

python脚本 从第二行开始读取 文件读取 跳过第一行 跳过前几行

1103

如何跳过 Codeception cest 测试

getline() 即使在 clear() 之后也会先跳过