使用批量分配调用User->update($data)
时,是否可以只设置传入的用户密码?
视图:
<form>
<input type="text" name="name">
<input type="text" name="email">
<input type="password" name="password">
<input type="submit">
</form>
型号:
<?php
class User extends Eloquent {
public static $rules = [
'name' => 'required:max:32',
'email' => 'required|max:128'
'password' => 'min:8|max:128'
];
// Allow mass-assignment for:
protected $fillable = ['name', 'email', 'password'];
// The attributes excluded from the model's JSON form.
protected $hidden = ['password', 'remember_token'];
}
控制器:
class UsersController extends BaseController {
public function update($id)
{
$user = User::findOrFail($id);
$validator = Validator::make($data = Input::all(), User::$rules);
if ($validator->fails())
return Redirect::back()->withErrors($validator)->withInput();
$user->update($data); // How do I only update password if password was passed in?
}
}
您应该使用:
$user->password = Hash::make(Input::get('password'));
$user->save();
而不是:
$user->update($data);
只更新用户密码。