2013-11-08 4 views
0

Я пытаюсь обновить столбец имени пользователя после того, как пользователь обновит свое имя пользователя. Я делаю это с маршрутизаторами и фильтров, а не с помощью контроллера .....Laravel 4 - обновить базу данных после запроса ajax

HTML:

Hi, <span class="username" contenteditable="true">{{ $username }} </span> 

JS/JQuery

var username = $('.username').text(); 
$('.username').blur(function(){ 
    if (username != $(this).text()) { 
     var username = $('.username').text(); 
     console.log('Changing your name to ' + username); 
     $.ajax({ 
      type: 'POST', 
      url: 'usernameChange', 
      data: { username: username } 
     }).done(function(msg){ 
      console.log('Okay, new username is ' + msg); 
     }); 
    } 
}); 

Это послать к маршрутизатору успешно .. .

Route::post('usernameChange', function(){ 
    $username = Input::get('username'); 
    return $username; 
}); 

Но я невежественный, где обновить таблицу, или если я даже делать это правильно .... Я пытался добавить этот в usernameChange маршрутизатор, но я получаю 505 внутренняя ошибка при попытке отправить запрос ...

DB::table('users') 
    ->where('id', Auth::user()->id) 
    ->update(array(Auth::user()->username => $username)); 

^Это даже не так ли?

Так как я могу это сделать и где я должен?

+0

Вам нужно взглянуть на документацию Laravel's Eloquent http://laravel.com/docs/eloquent – SamV

ответ

1

Использование красноречивы, вы можете сделать что-то вроде следующего:

$user = Auth::user(); 
$user->username = $username; 
$user->save(); 

Я рекомендовал бы добавить некоторые проверки в него, прежде чем сохранить его. Однако это основная идея. Загрузите пользователя. Измените то, что нужно изменить. Затем вызовите save для пользователя, чтобы обновить информацию.

Смежные вопросы