Koresh Решал подобную задачу, если ещё актуально и не нашли решения, то пример ниже. Аватары сами по себе в базу не попадают (точнее их привязка к пользователю), нужно писать код со стороны бакенда для этого.
Загрузка аватара через модальное окно (настройте под себя, можно и не из модального окна, а из общей формы с данными пользователя и повесить загрузку на событие выбора изображения onchange + вызов оттуда onAvatarUpdate через Ajax-javascript API):
<div class="modal-avatar">
<h4>Загрузить аватарку</h4>
<form data-request="onAvatarUpdate" data-request-files data-attach-loading data-request-success="$('#modal').modal('toggle'); return false;">
<div class="form-group">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<input type="file" name="avatar" id="file" onchange="$('label[for=\'file\']').html('<span class=\'glyphicon glyphicon-download-alt\'></span>'+this.files.item(0).name+' ('+Math.round(this.files.item(0).size/1024)+'Кб)')" />
<label for="file" class="inputfile"><span class="glyphicon glyphicon-download-alt"></span>Выберите файл</label>
</div>
<button type="submit">Загрузить </button>
</form>
</div>
И код со cтороны бакенда (html-код изображения аватарки возвращается в #avatar):
function onAvatarUpdate()
{
$validator = Validator::make(
$form = Input::all(), [
'avatar' => 'nullable|image|max:4000',
]
);
if ($validator->fails()) {
throw new ValidationException($validator);
};
$user = Auth::getUser();
$user->avatar = Input::file('avatar');
$user->save();
return ['#avatar' => '<img src="'.$user->getAvatarThumb($size = 120,['mode' => 'crop']).'" alt="'.$user->name.'" height="120" width="120" class="img-circle">'];
}
Всё достаточно тривиально. Если дальше развить идею, то можно пойти дальше - расширить функционал плагина Rainlab.User и внедрить обработку загрузки аватарки непосредственно в обработчик onUpdate формы (смысла правда в этом особо нет)