考虑代码
return User::find($user_id)->update($data_array)?true:false;
如果$data_array
有一些用户相关表中不存在的列。
然后也在声明return true
之上。
例如:$data_array=['not_in_the_table'=>'value'];
return User::find($user_id)->update($data_array)?true:false;
返回true。更新返回0
即false
?
答案 0 :(得分:1)
如果您使用下面的where('id','=',$user_id)
代替find($id)
,那么对于用户相关表中不存在的列,您将收到Column not found
之类的错误。所以这是最好的方法:
User::where('id','=',$user_id)->update(['column_name'=>'value']);
而不是:
User::find($user_id)->update($data_array)?true:false;
Update方法总是返回int。有关详细信息Check Here
或者如果您想使用Object Relation Mapping 方式更新记录,那么您可以这样做:
$user = User::find($user_id) ;
$user->column_name = 'value';
if($user->save()){
//do something when user is update
}else{
// do something wehn user is not update
}
答案 1 :(得分:0)
因为Laravel的验证使用了库,所以你不能将错误变成错误。
对于Laravel 4.2
public function update($user_id) {
$data_array = Input::all();
$validator = Validator::make(
$data_array,
array('name' => 'required|min:5')
);
if ($validator->passes()) {
// success as true
User::find($user_id)->update($data_array)
} else {
//failed as false
}
}
有关validator的更多信息 我希望这能帮到你