在for循环中的对象中创建数组。拉拉韦尔

时间:2019-12-11 18:06:48

标签: laravel

如何在for循环内的对象内创建对象?这就是我所拥有的,我希望能够在每次for循环发生时向该对象添加另一个条目,但是每次都增加一个数字

for ($i = 0; $i <= $question->rank; $i++) {
    $question->opciones = [
        'id' => $i,
        'option' => $i
    ];
}

我希望在$question内看起来像这样

{ 
   "id":4,
   "question":"question?",
   "user_id":1,
   "survey_section_id":2,
   "response_type_id":3,
   "optional":0,
   "num":null,
   "rank":6,
   "show_text":1,
   "created_at":"2019-12-10 08:22:37",
   "updated_at":"2019-12-10 08:22:37",
   "opciones":[ 
      { 
         "id":1,
         "option":1
      },
      { 
         "id":2,
         "option":2
      },
      { 
         "id":3,
         "option":3
      },
      { 
         "id":4,
         "option":4
      },
      { 
         "id":5,
         "option":5
      },
      { 
         "id":6,
         "option":6
      }
   ]
}

当前输出就是这样

{ 
   "id":4,
   "question":"question?",
   "user_id":1,
   "survey_section_id":2,
   "response_type_id":3,
   "optional":0,
   "num":null,
   "rank":6,
   "show_text":1,
   "created_at":"2019-12-10 08:22:37",
   "updated_at":"2019-12-10 08:22:37",
   "opciones":[ 
      { 
         "id":1,
         "option":1
      }
   ]
}

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您每次都覆盖opciones属性。

对此进行替换以附加到数组而不是覆盖它:

$question->opciones[] = [
    'id' => $i,
    'option' => $i
];