【发布时间】:2014-09-29 18:37:48
【问题描述】:
批量赋值调用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(Input::get('password')); $user->save();
标签: php laravel laravel-4 eloquent mass-assignment