Ne met à jour le champ que si la valeur du formulaire existe

Je suis en utilisant le Modèle de Formulaire de Liaison en tant que tel et la mise à jour de ma DB à l'aide de la fill() et save() méthodes.

{{ Form::model($account) }}
  {{ Form::text('name', null, array('class'=>'class')) }}
  {{ Form::text('email', null, array('class'=>'class')) }}
  {{ Form::password('password', array('class'=>'class')) }}
  {{ Form::password('password_confirmation', array('class'=>'class')) }}
{{ Form::close() }}

Qui se déclenche mon editAccount méthode de contrôleur:

$rules = array(
  'name' => array('required'),
  'email' => array('required'),
  'password' => array('confirmed')
);

$validator = Validator::make(Input::all(), $rules);

if ($validator->fails())
{
 //Redirect
}

//Save to DB
$account->fill(Input::all());
$account->save();

Qui fonctionne très bien, mais si aucun mot de passe n'a été fournie (parce que l'utilisateur ne souhaite pas mettre à jour/modifier) puis le champ mot de passe est défini à null dans la base de données. Donc, je veux seulement le champ de mot de passe pour mettre à jour si une nouvelle valeur de mot de passe est fourni par l'intermédiaire du formulaire.

Je sais que je peux faire ce qui suit:

//Set the fields manually
$account->name = Input::get('name');
$account->email = Input::get('email');

//Only update the password field if a value is supplied
if (Input::get('password')) {
    $account->password = Input::get('password');
}
$account->save();

Cependant, je me demande s'il existe une version plus propre façon de gérer cela? Comme un UpdateOnlyIfValueExists() la méthode dans Laravel/Éloquent.

source d'informationauteur Michael Pasqualone