我在控制器中有更新功能,我想存储表单的值。这是代码;
public function update(Request $request, $id=1){
$data = array();
$data->firstName = $request->get('firstName');
$data->lastName = $request->get('lastName');
$data->email = $request->get('email');
$data->company = $request->get('company');
$data->website = $request->get('website');
UserAdmin::where('id', Auth::user()->id)->update($data);
//return view('Administrator.profile.profile',$data);
return redirect('administrator/myprofile');
}
但是,在提交表单后,它会显示错误;
尝试分配非对象的属性
答案 0 :(得分:3)
那是因为你can't assign array values with $data->key
。数组不是对象,因此具有不同的语法。
然而,这将工作:
public function update(Request $request, $id=1){
$data = array();
$data['firstName'] = $request->get('firstName');
$data['lastName'] = $request->get('lastName');
// etc
}
答案 1 :(得分:1)
您正尝试在阵列上使用对象运算符( - >)。
对于您要实现的目标,最好将该模型用于您的优势。通过使用 findOrFail(),您可以返回一个对象。
public function update(Request $request, $id=1){
$data = UserAdmin::findOrFail(Auth::id());
$data->firstName = $request->get('firstName');
$data->lastName = $request->get('lastName');
$data->email = $request->get('email');
$data->company = $request->get('company');
$data->website = $request->get('website');
$data->save();
//return view('Administrator.profile.profile',$data);
return redirect('administrator/myprofile');
}
这将实现您想要的但更清洁。 查看Laravel Eloquent Documentation here。