在Laravel 5.2中将数据数组传递给控制器时,试图获取非对象的属性


Trying to get property of non-object while passing array of data to controller in Laravel 5.2

当我将数据的关联数组传递给控制器时,其显示错误为'尝试获取非对象属性'我的控制器功能是

        public function storeWBS(Request $request) {
        foreach($request->all() as $value){
            $formValue                = new WorkBreakdownStructure;
            $formValue->form_field_id = $value->idea_id;
            $formValue->value         = $value->wbs_description;
            $formValue->save();
        return back();}
    }

我已经在模型中设置了变量"可填充"

'id','form_field_id','值'如果我用DD()打印'$formValue',我会得到结果

#parameters: array:4 [▼
  "_token" => "u6iwKspevWLiuI6CRPhd82c8xm0EYb6IGQQJX2aR"
  "idea_id" => array:3 [▼
    0 => "1"
    1 => "1"
    2 => "1"
  ]
  "wbs_description" => array:3 [▼
    0 => "Work Breakdown Structure #1 :"
    1 => "Work Breakdown Structure #2"
    2 => "Work Breakdown Structure #3"
  ]
  "percentage" => array:3 [▼
    0 => "50"
    1 => "12"
    2 => "12"
  ]
]

all()返回数组,而不是对象,因此您无法像现在这样访问它:

.... = $value->idea_id;

相反,您需要更改它并使用数组语法:

.... = $value['idea_id'];

编辑

您还应该删除forach(),因为您基本上是在毫无意义的数组上迭代:

public function storeWBS(Request $request) {
      $value = $request->all();
            $formValue                = new WorkBreakdownStructure;
            $formValue->form_field_id = $value->idea_id;
            $formValue->value         = $value->wbs_description;
            $formValue->save();
        return back();
}

此外,您还需要修复return back();线路。无论back()指的是什么,您很可能调用错误。