【发布时间】:2013-02-26 10:22:17
【问题描述】:
我在这里做错了什么?
public static function updateuserdetails(){
$user_id_update_user_details = Input::get();
// find the user to update :
$user = User::where( 'user_id' , '=', $user_id_update_user_details['user_id'] )->first() ;
foreach ( $user_id_update_user_details as $key => $value) {
$user->$key = $value ;
}
$affected = $user->save();
return $affected ;
}
它不会将数据保存到数据库中。我必须使用“foreach”循环,因为我不知道需要从所有列中更新什么。
【问题讨论】:
-
在查看和设置属性之前,您确定在
$user中有用户记录吗?此外,您可以使用User::find($user_id_update_user_details['user_id']),因为您只需要一条记录。 -
老实说我不会这样做 foreach 因为这有一些严重的安全问题。相反,您应该在模型上定义可访问属性,并在输入中定义 mass assign 或手动选择每个属性。另外,我想您想查询
where('id')或find($id)而不是where('user_id'),但我可能错了。