Laravel Условное Массовое Назначение

При звонке 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?
}
}

0

Решение

Вы должны использовать:

$user->password = Hash::make(Input::get('password'));

$user->save();

вместо:

$user->update($data);

обновить только пароль пользователя.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]